OK. I copied the vista boot files off my laptop and used easyBCD to install it. It worked. When I restart my computer, I get into WindowsXP still.
I plugged in my Linux drive, and booted into WindowsXP. I started easyBCD 1.7 and added a new entry for Linux like this:
Type: Grub
Name: Ubuntu 7.1.0 (Gutsy)
Drive: Drive 0 - Partition 0 (Linux Native - 65GB)
I then restart the computer and I see the new entry for Ubuntu. But, when I select it I get thrown right back to the vista bootmenu. I'm guessing this is because I was using a separate drive for Linux before, so Grub is installed in the MBR of drive 0 rather than in the partition.
So, I boot into windows, startup up easybcd, remove my linux entry, then re-add it, only this time selecting the "grub is not installed" option. I rebooted, selected linux, and grub started up with several entries for ubuntu. The problem is, when I select one to boot, I get an error.
error 17: file not found
My HDDs are setup like this:
Drive 0 - Linux
Drive 1 - Data
Drive 2 - Windows XP (also the default boot drive)
Edit: Ok, so I played with it some more. I uninstalled neogrub, and installed grub to the partition as described in the wiki. I then re-added my ubuntu, but I get the same thing at the boot menu... it just comes right back to the boot menu instead of booting ubuntu.