Тут есть несколько причин:
1) "Эксплоиты" - уязвимости в коде и/или системе, через которые вирус или взломщик может заразить комьютер.
2) Человеческий фактор - если человек очень доверчивый или просто не знает про вирус, он может сам или следуя подсказкам своего "друга" заразить свой компьютер. Этот метод называеться "социальная инженерия".