My setup is pretty freakin' weird. I have two hard-drives (Serial-ATA) and during BIOS booting, only one of them is recognized. When my main Linux drive is plugged into the primary SATA cable, and my Windows drive the secondary cable, apparently LILO can't see or recognize my Windows drive, because it refuses to boot it. However, if I boot Linux, it mounts my Windows drive like it was nothing.
If I switch their cables, Windows boots like a charm.
Thoughts?
I wrote a post about this on another forum some time ago ... except, it was with FreeBSD's bootloader and multiple harddrives.
You might notice if you install Windows and use the entire drive (or the remainder of the drive) that it leaves oh say 12 or so MB unpartitioned. I am fairly certain this is Window's bootloader since, if you write over it, or it goes missing, Windows no longer boots. To further corroborate this hypothesis, I have a Windows XP image from long ago. I've dd'd it to the drive before and it has worked. Now, I've also clobbered the entire drive and installed FreeBSD and then later decided to repartition the drive and it no longer worked thereafter.
My guess is that your harddrive is missing this (and probably, more specifically, your first harddrive is missing it).