Parece-me que o Windows XP está confuso sobre quais unidades estão onde no sistema. Você, por acaso, instalou os SOs com a ordem de drive alterada na bios? Se assim for, que poderia ser a fonte de 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. este maio resolver o seu problema, mas não tenho certeza. Se ele inicializar, mas o material estiver quebrado, você pode 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 em 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 da letra da unidade após a primeira instalação, para que continue funcionando instale a segunda unidade.