Could be a number of things - over usage of the USB controller, file size/multiple file issues, power supply issues, partition setup, and the list goes on.
The first thing I'd look at is partition setup, which in turn relates to file size and/or multiple file issues.
If the external HDD is formatted FAT or FAT32, stop now, reformat the hard drive as NTFS (obviously this wipes the drive, so backup first if you need to) and start the transfer again.
FAT32 has file size restrictions of 4GB, anything larger (eg. a 1080p movie rip, DVD ISO etc) and the transfer speed will drop and eventually, nothing will happen. Similar situation with multiple files, USB is serial, meaning "in-line", so if you have 5 transfers going at once, the "bus" will slow down. 1 copy = full speed, 2 copies = half speed, 3 copies = quarter speed, 4 copies = 1/8 speed and so on.
Disconnect other (not needed) USB devices during the transfer. Each device, unless externally powered, pulls +5v from the USB controller and the computers power supply. Too many USB devices and things become unstable. Likewise if the computer's power supply is not very good. DC ripple or voltage fluctuations cause instability and erratic behaviour... not just on the USB (which is the mainboard), but on almost everything. This makes fault finding very difficult. Even more so if the computer is a laptop.
EDIT: I missed a part of you're original post - the part about the booting from a Linux Live CD because Windows won't boot...
What part of the boot process does it get to? Does it BSOD or reset or freeze?
It's unlikely to be fragmentation. And I'm unsure if maybe the Linux Live CD has USB limitaions (running at full speed (12Mb/s) rather than Hi-speed (400Mb/s))... but by the sounds of it, I'd be putting my money on bad sectors on the SATA hard drive.
I know you need to backup all the data you can while the drive is still alive, buy if you can get your hands on a hard drive diagnostics disk (dependent on the manufacturer of the suspect hard drive) or use the Ultimate Boot CD - which has most HDD diag tools (http://www.ultimatebootcd.com/download.html), and run a full diagnostics test, you will likely find multiple bad sectors. These are physical parts of the disk that can no longer be read (properly) and a good indication of imminent and irrepairable hard drive failure.
If that is the case, you may have to be satisfied with getting what you can.
That said, there is no way of knowing where the bad sectors on the hard drive are and which data is affected. So you may be able to get more data by drilling into the directory structure and doing folder by folder (rather than trying to copy the whole lot in one go). If it stalls on a folder, drill into that and do sub-folder by sub-folder (or file by file) until you have worked around the bad data. Unfortunately there is nothing you can do about the data affected by a bad sector.
Let me know if you need more help or clarification.