There are two kinds of bad sectors (well, technically they are the same, but they have different effects).
Some hard drives have some "spare" sectors that aren't initially allocated. When the drive has problems reliably reading to/from a given sector, it marks it as bad on it's servo platter. Some of these will be used even on a "perfect" drive; all disks are going to have a few defects, some more than others- but the thing is you don't see these bad-sectors through software. The software is entirely unaware that any remapping is going on at all. S.M.A.R.T can be queried for this information, though.
once the drive starts running out of actual spare sectors (which is usually quite a bit after any S.M.A.R.T monitoring,such as that done by modern BIOS chips, has already told you the drive is failing), the errors start going back to the software and the filesystem, which has it's own corrective measures such as having two copies of the MFT, shadow copies of files, and it's own defect remapping.
The only kind of "bad sector" that can be fixed would be one that is marked bad by software mistakenly. I believe this is done at the file system level when reformatting or when performing a CHKDSK /B (CHKDSK /C in pure DOS).
a sector could be mistakenly marked bad if the power supply is providing the hard drive with a wavering power source, the drive is jarred slightly or bumped (which can also cause <real> bad sectors as well, of course), the cable is loose, frayed, or otherwise damaged, etc.
The thing is- you can fix that with the built in tools in almost any Operating System. chkdsk /B on windows and a reboot will "fix" those types of unrecoverable sectors. Also, reading their FAQ, I really cannot see what spinrite offers that a tool like chkdsk or fsck doesn't; aside from showing S.M.A.R.T drive info during use which is of dubious value (much like S.M.A.R.T itself)
EDIT:
Comprehending what I read on their site a bit more, it actually sounds like it might be BAD for things- it states that it attempts to force the drive to remap a sector; but this doesn't make sense- the firmware of the drive will do this if it has trouble reading it, so what it's really doing is saying that the firmware's tolerance for error is too high and that it will force the drive to remap a sector that doesn't meet it's snobby requirements. This is bad because a drive has only a limited number of those sectors and it's absolutely stupid to waste them like this. The drive will fail faster- or more precisely, file-system-visible sectors will become evident faster, because there will be fewer spare sectors for the drive to use to remap REAL bad sectors.