Most of the spam is generated using scripts to fill in email account forms etc.
It's easy to prevent in a way, one way being to use a visual authentication code ( though you be amazed at how many companies will name their 'random' codes X5gtY.jpg etc).
The best way it to prevent auto-completion of forms by ensuring a slightly random time gap between fields being filled in but very few have cottoned on to this. Dead easy to do in javascript (
) or whatever.