It sounds like the ship drawing order is backwards at the moment - drawing subobjects first, then finally detail0.
If instead it drew Detail0 first, then the subobjects from furthest to closest (sorted by origin), that should work.
The limitation of this scheme is that Detail0 cannot contain any transparent geometry, but any and all subobjects can.
- Basically, you can always see the detail0, except where obscured by a subobject.
In ION3's drawing, this would mean SHIP > Dome 3 > Dome 2 > Dome 1
Thinking about it further, this would also require all glass to be double-sided as otherwise you'd lose the back of each dome.
(Edit)
... aaand I just realised why it's the way around it is.
Subobjects first means that you never have to check whether a subobject should be visible, as the 'turret' behind the ship gets obscured when the ship is drawn.
So to do this we'd need one heck of a lot more checking of the Z.
Likely a more fruitful effort would be working out how to pass the entire geometry to the GPU in one go, rather than several passes, so the GPU can do the z-sort.