Просто WinXp по сравнению Win98 гораздо более перегружен по отношению к NORMAL_PRIORITY_CLASS-приложению. И ваш цикл ожидания прерывания(а скорей всего события от драйвера) постоянно прерывается диспетчером задач.. Можно еще засунуть его в критисескую секцию...