Недавно имел опыт с переносом winxp с ata на sata (другое содержимое системного блока не менялось), и решил им поделиться. В общем-то вариантов не много.
1. Если поврежден загрузчик (ntldr is missing и т.д.), то прямой путь в консоль восстановления - команды fixmbr и fixboot.
2. Если загрузчик исправен, но ОС не грузит ни один файл (как правило, пишет про hal.dll - первое, что грузит) - то той же консолью - правка boot.ini командой bootcgf. Вручную не советую, так как есть вероятность, что система воспринимает C: как partition 1, а D: как 2, и вы об этом не узнаете.
3. Если система грузится до экрана приветствия, но на нем отображается только логотип винды - то скорее всего система монтирует новый жесткий диск на старое место (вероятно его вставляли, когда система была еще на ide). Тогда решение сложнее. Ищем работающую ОС, подключаем к ней хард, берем regedit, грузим куст system и в нем удаляем содержимое раздела MountedDevices.
4. Если синий экран bsod - то это, возможно, отсутствие драйверов. Поможет загрузка с ide, их ручная установка/корректировка, и повторное клонирование системного раздела на sata.