I have been through this a couple of times. If you're lucky, give the old drive a rest for a couple of days, and while it's resting, buy a new drive as large or larger (capacity) than the old one.
Do you have an old junker machine in the boneyard? Or is the current machine dead until this is fixed? It's best to do this on a machine you can start and forget it for a while - maybe as long as a week.
Put both the new drive and old drive in the machine, and boot whatever OS the recovery software needs. (Some of them even run DOS, so it usually doesn't take much. You can usually use a Live CD to boot.)
Start the recovery software, and tell it to copy everything it can salvage from the old drive to the new drive, including the partition table, MBR, and everything you can get.
Make sure it has started, and then walk away. If there are many bad sectors, I've had this process take as long as a week days on a large drive. "Hard" sector errors often take 10-15 seconds per sector for the recycle and reread. You'll hear the old drive clunking and moaning.
After the data is moved to the new drive, remove the old drive and boot the system from the new drive if you can. If not, boot from the install CD and try to repair/recover.
Most times, I have gotten more than 95% of the data back. System files are often lost, but so what. They can be re-installed or repaired. (System files get many hits; user data is accessed much less frequently. That's why the user data is often OK when the system files are corrupt.)
So good luck. It's a hassle. I just went through it two weeks ago when a system drive failed.
Been there, done that, got a tee-shirt, don't need another tee-shirt.
:-)