If you've got partition magic from powerquest, it does a good job of mapping out bad sectors on your partitions, it runs from DOS and has a good graphical interface to help you get the job done.
Another way is that if you don't mind spending time and effort and having a disk with many partitions, Fdisk can also do the job. The way to do it is to create a partition (take note of your partition size) exit fdisk, reboot, format your new partition, take note of the % done when format starts to fall over. Multiply that % by you partition size, quit format, go back to fdisk and delete all partitions, create a new one using a smaller size than the one you calculated. If you can format this new partition without any trouble, create new partitions as needed and repeat the above procedure, new logical partition in extended partition shloud be made large enough to accomodate the identified bad sector so that it can be partitioned out.
It's a time consuming method but it works. I've triedit when hard disks cost both arms and a leg and have in the past created 10 partitions on a 1.8Gb disk with about 6 of them made usable.
Hope that helps