La forma que lo hago yo es la siguiente y funciona perfectamente.
Mete el CD de Windows XP y create 1 particion para XP y instala ahi.
Una vez instalado desde el programa de administracion de discos del propio windows, crea 1 particion que usaras para Windows 7 y otra NTFS que llene todo el disco que falta.
Entra con un Gparted o programa similar y OCULTA la particion de XP.
A continuacion, inserta el cd de win7 , y al instalar selecciona la particion que ya le habias preparado y a siguiente. Se instalara (y como no hay espacio libre sin asignar no te creara la de 100mb).
Bien una vez instalado Windows 7, desde el gestor de particiones elimina la particion nº 3 que es la que ocupa todo el disco.
Crea la de datos, y deja un espacio de 10gb por ej para Ubuntu.
Reinicia, mete el cd de ubuntu, inicia Gparted y desoculta la particion de Windows XP. Instala Ubuntu mediante el asistente y dile que se ponga en el espacio libre.
Una vez haya finalizado veras que en el grub te ha detectado los 2 windows y el linux.
Si inicias Windows XP , se iniciara automaticamente.
Si inicias Windows 7, se iniciara automaticamente, nada de menus con "Versiones antiguas de windows"
Si inicias Linux se iniciara automaticamente.
Grub se encargara de iniciar los 3 sistemas en vez de tener un menu grub y luego un menu windows.
Tambien sirve para Hackintosh. Por lo menos las veces que lo he hecho en mi portatil (XP + 7 + Datos + Linux) / (XP + Hackintosh + Datos + Linux) a funcionado a la perfeccion.