I've done a little research and testing on this and i think i have a solution. It is based on the very unusual nature of the FixObjectToObject() command.
1. It seems that when you Fix an object to another it will attach the object as if the object that is being attached to was in its original state position/scale/rotation then the attached object will adopt the parent objects position/scale/rotation once FixObjectToObject() is called
2. So you can place an object, say a small box, at the Maximum and Minimum X/Y/Z co-ordinates as returned by GetObjectSizeMin/Max/X/Y/Z for the target object
3. Then fix those objects to the target object using the FixObjectToObject(). At which point the attached boxes will adopt the position/rotation/scale of the target object
4. By then querying the position (World co-ordinates) of these boxes you can determine the bounding box (in 3d space) of the objects
5. You could then use evil math to frame the bounding box or just move the camera away until GetobjectInScreen() tells you that the bounding boxes are on the screen
6. It's probably not something you would do every frame by it should be ok every now and then. As a function of an editor say