there is another way, dont let lilo or grub write to your MBR of /dev/hdx (where your XP mbr is). Instead place it on a seperate bootdisk or your rootdisk if you do not have a seperate bootdisk. Then cop your 'new' MBR to your windows disk using
dd if=/dev/hdx of=/dev/hdy/boot.lnx where /dev/hdx is your boot-disk for linux, and /dev/hdy is your XP-disk. If this one is NTFS you can't write to it. Use a floppy disk as intermediate make sure it is fat and not ext2 or something. Then go to XP, go to the prompt and cd / to the xp-root. Use attrib to remove the non-write and hidden from boot.ini attrib -r -h boot.ini. Then edit boot.ini and place an extra line for your Linux, and refer to boot.lnx (see the windows-lines for example. I think it is boot=/boot.lnx). You can use any name you like for boot.lnx. With this method I am able to boot from XP to Win 98, Debian, Gentoo, RedHat and Xp.