Personally I would have objphy as a field of objimage with an objspec field which has a basespec extended into objship etc. I could then run the collisions against objimage in my renderlist and, if present, use the objphy field to run any physics.
<edit> actually, depending on how different they are I might simply extend for objship etc.
<edit> actually, depending on how different they are I might simply extend for objship etc.