I've been able to fix similar problems by replacing the registry with a backup from the system restore directory. It is pretty complex, but the steps are here, under Part Two:
http://support.microsoft.com/kb/307545You can either do it by connecting the hard drive as a slave in another computer, or by booting the non-working computer off a Windows XP CD to the recovery console. Hopefully the restore points will still be there after starting the repair install