I've been having a lot of problems trying to recover a laptop with a damaged harddrive. The drive has had it, increasing bad sectors and clicking noises, but I am trying to recover what I can.
Most of the utilities I would normally use can't help here, either they give up when they reach bad sectors, or the can't work if the NTFS file system isn't clean. Ghost stopped on the bad sectors, even with the command line switches set to ignore them. So down to Ubuntu and linux tools.
ntfsclone is usually very good at this sort of thing, but kept saying I needed to start windows, run chkdks and reboot twice before continuing. And after several chkdsk's with repair and scan for bad sectors and many reboots still no success.
I finally got a good result using myrescue, a version of dd which was tolerant of bad sectors. It has a clever feature which skips a number of sectors after it finds a bad one and continues to read all the good ones before going back to the ones around the bad areas.
I used this to make a clone of the damaged drive, and was then able to successfully repair the filing system on the copied drive.