Bad sectors are due to physical defects on the surface of the disk and
therefore cannot be fixed.
If you have clusters marked as bad then it may be worth running an anti virus
program since some viruses will mark a cluster as bad, then use it for
some purpose. You could also try formatting using "format /u", if you are
using MS-DOS 6.2X use "format /u /c" instead. But as I said before if it
really is a bad sector it cannot be fixed.
If you have an old drive you may be able to hide the bad sector(s), by doing
a low level format. Instructions on doing that can be found in the
Disk And File System Issues section of this
Newer drives have a in-built bad sector swapping ability, whereby a bad sector
is swapped for a good one from a certain number of reserved sectors. Because
of this chances are that if bad sectors are appearing then there are a lot
more than you are being made aware of.
Depending on where the bad sector is on the disk, the file system may be able to
work around it, but it's not advisable to use a disk like this for important data.