No i would put it the way i explained before. grub2 will manage all for you. The map command is used to virtually switch the drives. You find the relevant code in /etc/grub.d/30_os-prober - no need to put linux hd as 2nd, use xp only for install as single drive - much better, does not change the mbr, drive will still work fully without 2nd one.
Code:
case ${BOOT} in
chain)
cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" {
EOF
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
case ${LONGNAME} in
Windows\ Vista*|Windows\ 7*)
;;
*)
cat << EOF
drivemap -s (hd0) \${root}
EOF
;;
esac
cat <<EOF
chainloader +1
}
EOF
;;