No passado, eu fazia isso colocando a nova unidade no computador antigo como secundária, formatando a nova unidade com a opção / s (para torná-la inicializável) e copiando manualmente tudo de uma unidade para outra (ignore o hiberfile e o arquivo de paginação), e você pode precisar copiar 1 ou dois arquivos do Windows (se estiverem bloqueados) em um prompt de comando. Então você coloca a nova unidade de volta no novo computador.
Se e quando o XP for inicializado na nova unidade, ele descobrirá que todo o hardware foi alterado e, em seguida, permitirá a instalação de novos drivers. Você deve ter os drivers em CD / DVD ou o HD ANTES que este processo inicie, porque você pode não ter acesso à rede ou até mesmo suporte USB. Então você está feito.
Se você receber um erro de parada na tela azul ao reinicializar com a nova unidade no novo computador (da instalação do Windows usando os drivers do computador antigo para chipset IDE / SATA normalmente), inicialize a partir de um disco de instalação do WinXP, escolhendo SEGUNDO "R" opção: você deseja instalar na partição existente, no diretório existente do Windows. Uma vez que o processo é feito, você deve ter uma instalação funcional com o mesmo perfil de usuário e todos os programas e atalhos devem estar lá e "simplesmente funciona".
Eu pessoalmente recomendo migrar os dados do usuário para a instalação do Vista em vez de fazer esse processo, mas fiz isso da maneira que descrevo acima várias vezes sem perdas. Se tudo correr mal, você ainda terá o disco antigo como um backup completo dos dados.