Cut/paste from http://www.ucolick.org/~zingale/linux_ibmr31/
FWIW, I use GRUB to dual boot between RH and WinXP and another machine between RH and W2K.
By placing the bootloader on the first sector of the boot partition, instead of the MBR, the GRUB screen does not come up when you reboot. We need to use the Windows XP bootloader (because of that damn NTFS) to get things working properly. Insert the first Redhat CD and reboot. Type 'linux rescue' at the prompt. It should find your Linux installation, mount it under /mnt/sysimage/, and drop you into a BASH shell.
Below are the steps required to get the Windows XP bootloader booting Linux for you. I more or less followed the tips at this R30 Linux page. The main difference is that our XP partition is NTFS. Remember that FAT32 partition we created -- we need it here (since there is no floppy drive on the R31).
* Type 'chroot /mnt/sysimage' to make your 'rescued' Linux installation the default root directory.
* Mount the FAT32 partition by making a /mnt/vfat directory ('mkdir /mnt/vfat'), and then 'mount -t vfat /dev/hda5 /mnt/vfat'.
* Now create a file bootsect.lnx containing the first 512 bytes of the Linux boot partition using dd, 'dd if=/dev/hda4 of=/bootsect.lnx bs=512 count=1'
* Copy this file onto the FAT32 partition so XP will be able to see it, 'cp /bootsect.lnx /mnt/vfat'. Boot into Windows XP and move that file into c:\Linux\.
* Now open a DOS shell, and make boot.ini writable ('attrib -h -r -s boot.ini'), edit it (with edit), and add c:\Linux\bootsect.lnx="Linux" to the end of the file (right after the "Windows XP Home Edition" line in the [operating systems] section).
* Make that file hidden again (attrib +h +r +s boot.ini), and reboot. The Windows XP boot loader should have a line for Linux, and when selected, that should load GRUB.
Hope this helps