Chkdsk may not fix the problem : If the bad sectors are in a file that is required for booting, as your case seems to be. All it will do is flag them as bad, so they will still not be available for boot, in effect destroying your Windows installation.
If you still have access to a functioning computer, see this article:
Install Windows XP on SATA without a Floppy (F6)
which will show you how to integrate the SATA drivers into the Windows boot CD.
One solution is then to Perform a Repair Installation. This will refresh the XP installation without destroying the Windows installation. However, you should be using an XP boot CD that is of the same service-pack level as currently installed. You shouldn't repair, for example, XP SP3 using an XP SP2 boot CD.
If you don't have an XP SP3 boot CD, see how to create it from an older CD in :
How to Slipstream Windows XP Service Pack 3 to Create an Integrated XP Setup Disk with SP 3.
Another solution (and in my opinion the best) is to invest in a commercial disk repair program, which will try to recover the existing contents of the disk, by rereading the bad sectors in various ways, then mapping them to good sectors.
A hard disk with bad sectors can still be resuscitated by using a commercial product such as SpinRite or HDD Regenerator. SpinRite can sometimes work magic, and gives an absolute money-back satisfaction guarantee.