I'm not a programmer, I'm a mathematician, but I notice the same thing in my field.
To those who say there is not a tendency toward weirdness in mathematical disciplines, I suggest the following experiment. First go to the weekly math colloquium at a local research university. Then, go to the weekly philosophy colloquium and see if you can discern a difference in the people who come. I believe you will almost certainly find that the mathematicians are less attractive and charismatic. You could argue that philosophy simply selects for attractiveness and charisma, but I believe you will have similar findings if many different subjects are substituted for phil.
To those who say that the strangeness of programmers is somehow reducible to various qualities of "geeks", this is clearly begging the question, as any good geek should know. The topic for this thread is very similar to asking "why are geeks the way they are?" but phrased differently.
I have spent large amounts of time wondering why mathematicians are weird, ugly, uncharismatic and so forth. My answer is that they live largely in their own imaginations, and spend correspondingly less time in the "real world." Therefore, not surprisingly, their real world appearance, manners etc gives evidence of a lack of attention. Conversely people in other fields are not selected for an ability to concentrate deeply, spend more time in the here and now, and reap consequent benefits in hygiene, social skills, etc.