It's happened to us all, I am certain. However, at some point (college hopefully, or at least later in the "real world") the joke's on them. Those who let the geek do all the work and make no effort to understand the project may get a passing grade, or be perceived as having accomplished something at work, but ultimately it will come around to bit them in the ass. I was in a programming class where they attempted to split the class in to those with programming experience, and those without. They then formed mixed groups. However, this backfired completely, as most of the people who were not experienced in programming let the programmer do all the work, and never learned anything. Finals came around, and, well, I imagine most of them are in that class for a second try.