The problem is, if the object was created in another application, it's
reference point may be to 0,0,0 rather than it's actual location. You can
move the reference point by selecting the "Use Texture Axis Tool" and move
it in the viewports to suit. Then when this object is selected the viewport
will spin around it.
Often with large complex scenes (I work mostly with architecture) I create a
few 'Null Objects' around the scene and select them as need be to rotate