Elcomsoft make a pretty useful program called Advanced Office Password Recovery which can do the job better than anything else I've used.
It's probably worth putting a value on the data you're trying to recover before attempting this, sometimes it's less expensive to let the user re-create the document from scratch (and teaches them a valuable lesson ;-) ). AOPR isn't free, and the passwords can sometimes only be worked out by brute force (trying every possible combination of letters) which can take a very long time.