Sink holes are caused by voids below the surface. When the void becomes sufficiently large enough, the top crust will cave in, creating the sink hole.

The only way that a sink hole can form is through erosion of the subsoil, which is typically caused by underground water flow, be it excessive rainfall, broken drainage, broken water supply, etc.

Builders can be blamed for some by not preparing the pads and infrastructure properly. Townships can be to blame by allowing building in areas of known instability, such as over old landfill sites, reclaimed wetlands, or seismic areas.

We had a poster here about a year ago with an erosion problem under his house. The cause not completely known, but apparently the development was built on or near a swamp and the water was not sufficiently diverted before the houses were built.