first, to update your bios, you should see on the manufacturer's page, where you download the bin file ; there should be at least one executable that updates the bios coming with it. on some boards this can be done whithin windoze (berk), usually it's from dos.
for grub, I've had problems with windows XP too. I fixed it this way:
booted off a linux CD and ran fdisk. made a few partitions, as follows:
- hda1 (linux boot, reiserfs, about 30-60MB)
hda2 (windows, ntfs, needs to start before cylinder 1024!, at least 2-3GB )
hda3 (linux swap, like 500MB)
hda5 (linux /, reiserfs, usually around 3GB)
hda6 and beyond: (whatever else you may want, try to put /home separate fom / it's a good idea)
set the bootable flag to hda2, write changes to disk and exit.
install windoze, it should boot fine.
then install linux, make sure the bootable flag is still on hda2 and install grub on the mbr. If you do not leave the boot flag on the windows partition, it will either not work or fsck up you boot process when booting windows.
to boot on windows, simply make an entry in /boot/grub/menu.lst that looks like this:
title Windows 2000
proceeding this way shouldn't give you a problem, and if you can't boot off your windows CD then I don't know... make sure you've set up your bios right, and if your CD-Rom drive is SCSI don't count on it. it's supposed to work, but I've never been able to boot off a scsi CD (even though it's detected before boot)
if you've installed linux before installing windows (which seems to be that case), try to adapt your partition table so it fits my example. it shouldn't make a difference to widows since it doesn't even see the linux partitions (except when installing, it lists them as "unknown type" so don't overwrite them
have a nice day (before MS spoils it ;-)