"What we got here is failure to comunicate..."
buddy, You got yourself a double_device_remapping problem which is a serious issue.
1. When You tell Your BIOS to boot from the (wild guess) 2nd HDD with Linux, it remaps the drives:
1st Master -> 1st Slave
1st Slave -> 1st Master
Then You land in the grub and it seeks for (hd0,0) as the windows partition, which now (thanks to BIOS) shows on Ubuntu's 1s partition, and then tries to 'chainload +1' ubuntu's root partition's 1st block. This ain't working normally :-)
Try this out:
get to the GRUB's console
the type [tab] to see the patitions of the '1st' drive
then edit it to