I became quite "un-fond" of animating items without the help of dummy objects. IMO, dummy objects are the only reasonable way to get items to animate easily. the trick is to get the items dummied properly. I'll edit this post once I get a decent rig going so I can explain it better
Okay, the reason behind the dummies for object rotation is so that you don't really need to alter your model's rotation... then layered dummies makes up for the fact 3dsmax can't seem to handle local axis animation.
So say I've got the glasses frame with one earpiece visible... for rigging this, the parts need to have their joints exactly in the right place, or the model will literally fall apart. So we create three dummies. I usually use point helpers since you can change their display icon. For actual object's animation, I use a box, and for object orientation, I use the cross. The reasoning behind this is because the orientation is always looking like the axis.
Well, anyway, the first point helper, you'd align with your hinge. make sure to angle it as completely accurate as you possibly can, because this one is the base dummy to get everything to work properly. Turn this one into an "Axis Tripod" Naming is not important for this one, as you will delete it eventually.
Now make sure your earpiece has its hinge perfectly straight on every single axis. Go ahead and move it aside from the frame, so you don't accidentally link to the frame.
Once the earpiece is aligned properly, you want to create a point helper at the pivot point. Go ahead and make it a Box display. Name it something like dummy_rotation_earpiece. My naming convention for dummies is usually objectType_reasonForObject'sExistance_objectInfluencedByDummy...
So anyway, you should NOT have to rotate this dummy one bit. If you think you should in order to get it to line up with the hinge on the earpiece, angle the earpiece, NOT the dummy. Once this dummy is lined up perfectly with the hinge of the earpiece, then duplicate the dummy object, and give it the name dummy_oreintation_earpiece. Assign it the Cross display style.
Now, select the intended child object, the earpiece, and link it to the intended parent object, dummy_rotation_earpiece. Child the dummy_rotation_earpiece to dummy_orientation_earpiece. so now should be able to select and move the earpiece, without affecting either dummy object... make sure to right-click to cancel the operation while you test this out... dummy_rotation_earpiece shouold be able to move around without affecting the orientation dummy, and the dummy_orientation_earpiece should move around and take both the other dummy and the earpiece along with it.
Once all that is checked to work properly, use the align tool to align the dummy_orientation_earpiece with the axis tripod dummy that is holding the place of your hinge's orientation. if they aren't already checked off, go ahead and check off the boxes for X, Y, and Z axis under "Align Oirentation (Local)" This should put your earpiece back exactly where you intended it to be originally.
Now when you want the earpiece to be animated, animate the dummy_rotation_earpiece, not the dummy_orientation_earpiece. This will allow for the earpiece to spin along its axis.
This is also a good way to animate tires, as they have at least 2 things influencing their orientation. in fact, for each object influencing orientation, you should really have another dummy object. Because you wouldn't want dependance on just one dummy for both tire steering angle and camber orientation ... you'll get huge headaches trying to get that to animate properly.
so yeah, a good rig for a vehicle would include many, many, many dummies lol
oh yeah, and once you get the orientation dummy for your earpiece aligned, you can delete the pivot-holder dummy, and then child the orientation dummy to your glasses frame, and then you can just move the glasses around (via dummy, of course

) and they'll take the earpiece with it
hope that helps