Clone your drive sector-by-sector using a tool (eg ddrescue) that knows how to work around bad sectors, and then use data recovery software on the clone. http://www.gnu.org/software/ddrescue/ddrescue.html
Ddrescue can perform multipass cloning. It clones the easy sectors on the first pass, and attempts the more difficult ones on subsequent passes. It keeps a log, allowing it to resume after an interruption.