The mbr is on the first 446 bytes. The rest contain the partition tables and the mbr signature.
From wikipedia:
Code:
Address Function
+---------------------------------------+
| 0x0000 Code Area (446 Bytes) |
|=======================================|
| 0x01BE 16 byte partition table entry|
|=======================================|
| 0x01CE 16 byte partition table entry|
|=======================================|
| 0x01DE 16 byte partition table entry|
|=======================================|
| 0x01EE 16 byte partition table entry|
|=======================================|
| 0x01FE 2 byte MBR signature (0xAA55)|
+---------------------------------------+
If you create a rescue disk before setting up windows, then you can use it to boot into Linux and use lilo or grub to reinstall the mbr after adding an entry for windows which will be chain loaded.
An alternative is to change your boot entry to the root partition, run lilo or grub to write the bootstrap loader to the root partition, and use "dd if=<root device> of=linux.bin bs=446 bc=1" to write it to a file. Now save the "linux.bin" file on external media or a partition that windows can read so that you can save it to C:\ later on when Windows boots up.
After windows is installed, in windows edit the C:\BOOT.INI file to add an entry to the boot menu to chainload the lilo or grub boot loader.
Code:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows XP Professional" /fastdetect
c:\linux.bin="Linux"