Sorry for being late to the conversation...Kinda slacking on my internet postings the last few months....
Anyway, here is my recommendation. It will require a LOT of hard drive space. If you can get the computer to recognize the drive, I would copy the data before the drive quits completely.
If you have space on your home partition (for example) and your dead/failing hard drive is /dev/sdb then you can do:
dd if=/dev/sdb of=/home/hronmeer/drive.img
This will create an exact replica of your drive for you to mess with so you don't destroy the original data. Since it is an exact replica you will need at least 250GB free space in home.
After this, you can run testdisk (
http://www.cgsecurity.org/wiki/TestDisk). There are tons of good tutorials on the site and on Google. Just be aware that if you don't use any filters, it will try to recover EVERY file it finds regardless of how complete it is. This will use lots of hard drive space. You should be able to filter out file types rather easily if you are looking for specific files.
Foremost is fantastic for forensics work, so you should easily be able to use it to recover files from the image.
If you are working with an ext2 or ext3 drive you can look into e2undel and ext3grep.
I never got magicrescue to work efficiently when I used it, but I have heard good reviews from others.
One new set of tools that I just heard about but haven't gotten a chance to work with is the "recover" tools (recover, recoverdm, recoverjpeg).
Another one I have not tried yet is for NTFS drives (dont use NTFS much since I use Windows as little as possible) is scrounge-ntfs.
Well that is all I have got for now...
Oh...BTW...all of these tools are in the Debian repos (and a quick check shows in Ubuntu as well) so all of the tools should be in whatever Debian based live cd you are using (aka Knoppix).
Hope this helps!
~Stack~