A while back someone wrote a siggraph paper on using dual quaternions for a more advanced skinning.  Unlike linear skinning, dual quarternions don’t suffer from the “shrinkage” problems and require far less corrective shape keys as a consequence.

I’ve used this in my own rig, and it seems to work great.  It’s implemented in Blender, and the site has links to plugins for Maya and XNA.