Parece-me que o Windows XP está confuso sobre quais unidades estão no sistema. Você, por acaso, instalou os SOs com a ordem de drive alterada na bios? Se assim for, que poderia ser a fonte da confusão do seu sistema operacional. Quando a segunda unidade estiver no sistema, a atribuição automática da letra da unidade não funcionará.
Primeiro, verifique o boot.ini para o Windows XP. Certifique-se de que esteja configurado corretamente para inicializar a partir da segunda unidade. Isso pode resolver seu problema, mas não tenho certeza. Se ele inicializar, mas o material estiver quebrado, você poderá alterar as letras de unidade do XP (no Gerenciador de discos ).
Se isso não funcionar, recomendo instalar do zero. Primeiro, participo as duas unidades. Faça a partição C: algo que o Windows não pode usar e particione D: com NTFS. Em seguida, instale o XP no D: (o que pode parecer é C :). Depois de instalado, escreva novamente a letra conforme necessário no gerenciamento de disco. Em seguida, instale o 7 em C :. Pode ser necessário alterar temporariamente o tipo de partição D: para que ela fique oculta do instalador de 7, ou então pode tentar atualizar essa unidade. Para alterar o tipo de partição, normalmente uso o fdisk do Linux, que pode editar o tipo sem fazer outras alterações. Uma vez que o 7 e o XP estejam instalados, configure o boot.ini como recomendado por Ted Elliot.
Eu não testei essas instruções e muita coisa mudou desde a última vez que tentei fazer duas inicializações diferentes do Windows, mas o princípio geral é evitar alterar o layout da partição e a detecção de letras após a primeira instalação, para que continue funciona assim que você instalar a segunda unidade.