There’s a very good New York Times magazine article on the problems with electronic voting machines. Others have blogged on it; I particularly recommend the Freedom to Tinker explanation of some things the article missed.
I’ll simply stress two points that are made in the article. First, even though I’m a security guy ("Paranoia is our Profession"), I think the biggest problem with e-voting machines is ordinary buggy code. Second, you’d think that computer scientists would be the strongest proponents of our own technology. That isn’t the case. Most (though not all) of us think such machines are far too unreliable. It may be possible to build really good e-voting machines, but that sort of programming is very expensive. By all accounts, that hasn’t even been tried. (In that vein, making voting machines open source won’t help, except to let everyone see how bad the code is. There are many good things about open source code, but it’s not a substitute for good practice and a lot of very hard work.)
The country finally seems to be moving to optical scanners; I agree that they’re the best choice. A crucial point will be a precise legislative definition of voter intent. Voting machines will need to be tested against this definition. We do not need the optical mark equivalent of hanging chads. (Aside: the very first law I ever read, some 40 years ago, was an amendment to New York’s election laws. It defined how to mark a paper ballot: two lines that touched or crossed within the designated box. Yes, that allows check marks and Xs; it also allows plus signs, inverted Vs, greater than and less than signs, etc. No matter — it’s a precise definition that includes all of the normal marks that people would make. Some years later, I worked as an observer during paper ballot counting in North Carolina. Yes, we all knew to challenge improperly-marked ballots that appeared to be for the other candidate…)
Finally, I want to stress the role of process. In an election, "process" includes things like properly accounting for all ballots and making sure that the ballot boxes are empty at the start of voting; it also includes random hand recounts of some precincts as a check on the automated scanners that will do most of the tallying.