On the list of interesting facts that haven't come to light yet, "nerd" is a Greek word meaning "enlightened" (or so I've been told by a Greek person who used to role-play on my MUD), and a "geek" originally was a carnival entertainer who would bite the heads off of chickens.
Literally, "nerd" and "geek" are insulting labels. If there's any confusion about their distinction and meaning it is because of a common psycho-sociological pattern whereby people who have been victimized gather under the label they've all been cast beneath and develop a group pride, even arrogance, and definitely elitism. "self proclaimed nerds" tend to shun geeks as they were shunned, and "self proclaimed geeks" tend to shun their nerd brethren.
Frankly, the social barriers are illusory. All that makes a "nerd" or a "geek" is shyness in youth. Young and shy males in at least in American social avenues tend to fall behind in the break-neck, competitive environment they're hurled into as children. Young and shy girls tend to support each other earlier on, I think. If nerds are less interested in sports, there is little correlation to physical attributes, but rather that they weren't accepted in sport venues when they were young because _they were shy_. This presents the familiar, analogous dichotomy of "nerds" vs. "jocks". Alternatively, kids that are just plain smart when they're young might shun or be shunned by their cohorts, leading to the same disparity.
Of course, this leads to a lot of walking around, playing in the sand box, watching Star Trek, and pondering beneath trees. So, the people who are rejected ultimately find time for diverse interests and imagination games rather than sports and "ring around the rosy". Perhaps this is where our "dreamers" come from.
As far as names go, people tend to pick the label they ascribe to based on what sounds right. "Computer geek" and "band geek" are common idioms. If you haven't heard either of them, you might chose "nerd". I did. I've never heard of a proudly self proclaimed "dweeb" or "dork". For me, "dweeb" conjures images from "The Farside Gallery".
My personal experience is a combination of circumstances. In school, I wasn't very interested in sports. I was shy, but ambitious. I was nonconformist. From watching TNG, I had adopted a daunting vocabulary and appreciation for higher ethics than "take from others when they take form you", which led to being less assertive. So, I took to imagination games and drawing. Later, in the void of social activity, I started playing with computers. I took an interest in phonetics and alphabets which blossomed later on when I started learning languages like German and Quenya. Again, in the wake of social activity I ended up in band and Boy Scouts where the ethical waters seemed safer. Then I became a self-proclaimed "nerd" at about 14 years old. So, now I'm studying Computer Science with a bunch of other "nerds" and "computer geeks". I suspect that many of my fellows had similar experiences and age gave us all an opportunity to accrete here.
In summary, "nerd", "geek", "dweeb", "dork", and "jock" are all names of mutually exclusive social groups stemming from fierce competition, a social expectation of assertiveness and success in common sport games, intolerance, and a social pattern of victim dignification/anti-defamation. Petty distinctions among these victim groups depend on the definitions assigned within them.
Originally posted for the conlang list.