I'm sure I've fixed it using fixmbr at the recovery console, can be from a disc close to the machine's os i think. eg if you have xp home installed, you can use an xp pro disc.
I'm fairly sure I've also done it from a Hiren's boot cd, copying hal.dll across. one of my usb sticks has hal.dll on it, I must have left it on there for a reason
supergrubdisc may also be useful to fix mbr, it's quicker and easier than using a windows disc.
Actually I think I fixed it on one work machine by using Hirens and a chkdsk on the machine's hard drive fixed it.
I had this bookmarked, maybe it's useful
http://pcsupport.about.com/od/findby...singhaldll.htm