Just some ideas, hope you contribute:
1. more computer users
A virus has not to be perfect anymore, because there are enough people who would distribute
More users means more user who don't know how to handle a computer. It's easier to give a virus to someone who doesn't know what it is or thinks this doesn't happen in real life
2. more diskspace
a.) more programs
More places to hide. If you have a 200 mb harddisk you know the filesizes of some of your exes, so the virus has to keep the original filesize. I guess no normal user with a 20 gig disk would recognize if the size of some files changes
b.) more space to scan
User will use virus scanners less often because it takes to much time
3.) YAY! no more assembler
Filesize doesn't matter so program your virus in C. And many people have office products installed (macro viruses)
4.) bigger operating systems
Again, more places to hide.
5.) more Windows
The replacment of old pretty secure unix mainframes with networked windows pcs, results in a more uniform, and so easier to infect, platform.