I had a problem: my dual-boot PC would boot into linux (Ubuntu) fine, but I could not boot into Windows XP.
The Windows boot process would stop after loading hpdskflt.sys (in my case) and then it would restart.
It turns out to be my fault: I changed the hard drive configuration in BIOS to SATA rather than IDE. Switching it back to 'SATA Native=Disable' in my case allows Windows XP to boot normally.
Other BIOSs are likely to have a similar setting such as SATA Mode=IDE or SATA or RAID etc.
A friend, who had the same problem, later found this site which explains the problem in detail.