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.
Ddrescue can perform multipass cloning. It clones the easy sectors on the first pass, and attempts the more difficult ones on subsequent passes. It can also clone your drive in reverse, thereby disabling lookahead caching. It keeps a log, allowing it to resume after an interruption.
http://www.gnu.org/software/ddrescue/ddrescue.html
Ubuntu Rescue Remix:
http://ubuntu-rescue-remix.org/
Install Ubuntu Rescue Remix to a Flash Drive:
http://www.pendrivelinux.com/install-ubuntu-rescue-remix-to-a-flash-drive/
Clone a failing Windows hard disk with ddrescue on Ubuntu Rescue Remix:
http://keystoneisit.blogspot.com/2011/08/clone-failing-windows-hard-disk-with.html