So I've basically made all the interiors procedurally generated from parts, including the roll cage, seats, dashboard etc. The problem is, when a car now gets smashed up (see the picture for a complete smashing up), the damaged mesh now goes through things that it shouldn't. So I've come up with the idea of giving the damage mesh as "skeleton" whereby each "bone" is an area that cannot deform much.
When the vehicle hits things, the bones act as a constraint on the mesh so that it will not allow the mesh to pass through the bones, but it still allows the mesh to deform else where.
This should make the damage a lot more realistic and allow damage to continue to work nicely with the new transparent glass shaders and visible interiors! It's a very simple implementation, and really not foolproof, but basically the "volume" used to smash up the car simply gets capped by any of the bones (metal bars) that it hits, and then as such it stops the mesh deforming that much in those areas.
In the cases where a polygon vertex does not lies near the roll cage bars, you can still get intersection with the mesh happening, but as this is a quick implementation to simply get it up and running to an "OK" standard, it is fine for Rush Rally 3!