yes it may not be a hardware problem. I think it is because there are only 2 available boot loaders, actually: the normal \NTLDR and \CMLDR. NTLDR loads the XP system, or NTLDR loads CMLDR, but CMLDR cannot process BOOT.INI, It seems that CMLDR will then process the file cmdcons\txtsetup.sif, in which "osloadoption..." line instructs it to load WinPE or RC. It is not possible to make a choice at runtime. Maybe, try use 3 loaders: NTLDR, CMLDR of RC, and SETUPLDR.BIN of winpe. you can rename SETUPLDR.BIN to, for example, STLDR; then edit \BOOTSECT.DAT file, replace the ASCII string "CMLDR" to STLDR.