Si instalas el XP primero y luego el VISTA, seguramente funcione. VISTA detectará la instalación de XP y lo añadirá al gestor de arranque del mismo.
Pero a mi esa solución no me va mucho.
Prefiero separar completamente los sistemas operativos y usar un gestor de arranque de terceros. El Acronis OS Selector que viene en el DISK DIRECTOR SUITE 10 es muy bueno.
La forma de hacerlo sería, primero creas las particiones con algun soft para ello como los de acronis o partition magic para DOS.
Creas 2 primarias, una albergará un SO, el XP y la otra el VISTA.
Primero creas por ejemplo una primaria para XP, de XX GB y luego la de VISTA, adyacente a la otra. Pero seteas como activa la de XP y la de VISTA la dejas oculta para que el programa de instalación de XP no la vea.
Luego puedes crear una lógica que sea visible en los dos SO, para albergar datos o para pasar cosas de un SO a otro.
Instalas el XP dejando oculta la del VISTA.
Cuando acabe de instalar, arrancas en DOS con partition magic de neuvo o con el acronis, seteas como activa la del VISTA y dejas oculta la de XP para que VISTA no la detecte (con vista no sé que pasará, no he probado estas cosas).
De ese modo cuando acabe VISTA, VISTA será unidad C: aunque esté en la 2ª partición, porque no es consciente de que haya otra delante.
Ahora vuelves a DOS, marcas activa la de XP y oculta VISTA, reinicia y arranca XP. XP es la C: porque no es cosciente de que haya otra partición por ahí primaria, además él ha sido el primero en instalarse y en la primera partición.
Instalas el Acronis OS selector y lo configuras para que arranque uno u otro SO.
Configuras para que cuando arranque un SO u otro, automáticamente se oculte la partición del SO que no ha arrancado, así lo separas de virus y mierdas que se puedan propagar por ahí (que aun así se peuden meter en la lógica, pero es menos problemático).
Total, si lo haces bien, tendrás un menú al arrancar que te dejará elegir VISTA o XP y que por defecto si no tocas nada arrancará el SO que tu quieras. Incluso poner contraseña puedes.
Arrancarás XP, XP será C: y verás la D:, que será la unidad lógica, almacen de datos (por ejemplo emule). Pero no verás la del VISTA, así está aislado.
Reinicias, arrancarás VISTA, VISTA será C: y verás la D:, que es la lógica, igual que antes, pero no verás la del XP, así está aislado.
Para mi es la mejor manera.
De la otra, dependes del cargador de Windows y siempre las dos particiones deben estar visibles, puesto que una es la de inicio y otra la de sistema (una es la que carga el sector de arranque y el boot manager y la otra la que tiene el SO y ya carga el kernel del mismo, por lo tanto siempre tienen que estar las dos visibles y no me mola. Además es más fácil colarse y que una sea la C: y otra la D:, arranques XP y sea D: en vez de C:... se puede hacer que sea C: incluso con el boot manager del windows, pero para eso ya lo haces bien desde el principio).