Get yourself a 1TB or larger disk drive and (if you don't have one), a USB key > 1 gig. Ideally the hard drive should be bigger then 1TB, but if not, make sure it is a different model - ideally a different make. You could use a USB3 disk.
Ensure that both the damaged and new disks are in the machine. Create an Ubuntu LiveUSB install on the USB key and boot from that.
Identify each of the disks in the system - IT IS VERY IMPORTANT YOU GET THE ORDER OF THE DISKS THE CORRECT WAY ROUND, OTHERWISE YOU WILL OVERWRITE YOUR DATA IRRECOVERABLY. There are a few ways of doing this - doing an hdparm -i /dev/sdX (where X is a - c) will help identify the disks.
Assuming your damaged disk is /dev/sdb and your new disk is /dev/sdc, use ddrescue to do a bit copy of the data from the old disk to the new disk. From a shell, the command will be sudo ddrescue --force /dev/sdb /dev/sdc /tmp/progress.log (If ddrescue does not exist on the distro, sudo apt-get install gddrescue to get the package). THIS WILL MAKE AN EXACT COPY OF YOUR FAULTY DRIVE.
Run testdisk to attempt to recover your partition information on the copy of the drive. (if the package needs to be installed, sudo apt-get install testdisk). If this recovers your partition information and gets you working you are done.
If it doesn't, you have a struggle on your hands. Repartition the new disk (or use another disk) so that it has ample storage space, and then run photorec on the old disk - this will go through the disk looking for files it can recover. Unfortunately a lot of stuff will be missing, and what you do get will have incorrect names, but you will probably be able to salvage a fair number of documents, photos, mp3's - depending on how fragmented the disk is - but this will be a VERY time consuming process.