External Mac harddrive read errors
Solution 1:
You could try using ddrescue to clone the raw drive data to either another drive (at least as large as the failing one), or to a disk image (again, on another drive). Then, copy the files from the clone.
What ddrescue does is to copy the contents of the drive, skipping over any sections that don't read successfully; then it goes back and retries the sections that got errors on the first pass, and (hopefully) eventually gets everything. This is great if you want everything off the drive, but doesn't give you the option to just pick a few files and/or folders you care about; I don't know of anything that'll handle errors like ddrecover but allow selectivity.
Using it will be a bit unintuitive on OS X, since it wants to work with the unix-level device file, not a mounted volume. There's a procedure on tinyapps.org for how to use it to recover a Mac's internal drive; in your situation you'd just skip putting the Mac into target disk mode (step 1), and maybe use USB instead of FireWire in step 4.
There is ddrescue as a compiled binary for OS X on TinyApps. The important thing is that their download links require an account/password. The account is the first line of text in their logo (case matters!) and the password is the second line of text in their logo (see the TinyApps.org FAQ for an explanation).
The TinyApps.org Instructions on using ddrescue