Facil: API.
Los troyanos (al menos los complejos) hacen un uso intensivo de las API del sistema. Algunas de esas API van quedando obsoletas y son removidas en las versiones siguientes de los sistemas operativos, entonces cuando tu código intenta llamar una API que actualmente ya no existe... BANG!
Tambien pasa por los cambios de seguridad realizados. De vista a W7 por ejemplo, hay un cambio brutal en las cosas. Ya no puedes sin mas copiar archivos al System32 sin que el usuario se de cuenta, o cosas asi. Ahora es mas dificil.
Correccion, los troyanos decentes usan la api del sistema, windows no tengo entendido que retire APIs debido al tema de la compatibilidad con versiones anteriores.
Y la infeccion de un sistema Windows XP o Windows 7 no se hace de una manera mas sencilla o dificil, simplemente cambio el metodo.