Oh my lord, group projects are difficult. You've probably been complaining about them all throughout high school (I'm guessing because you usually have to do all of the work) and they don't get easier at Caltech, just different.
Group work at Caltech comes in many forms. Almost every problem set has a collaboration policy that allows you to work with others, so in some sense, almost every problem set is a "group project" (although collaboration policies for problem sets usually require that everyone write their own final solutions and turn in their own submissions). Then there are projects within classes, similar to group projects in high school, where you work with a couple of people for one or two weeks on one submission. There are also project classes, where a group of students forms at the beginning of the term, works on a single project for 10 weeks, then submits the project at the end of the class.
Having experienced each of these types of group work, I have to say that the second and third ones are the most exhausting. Group work on a single submission requires either that everyone in the group is on the same page all of the time, and that everyone's schedules are accommodated so that you can all work together on the project at the same time, in the same room. The first method requires that everyone in the group be an excellent communicator, that everyone documents their work properly so that when someone else picks up where they left off, the new worker will be able to do so easily. The second method requires great feats of organizational ability from everyone involved, so that students with different class and social schedules can still manage their time well enough to all meet up to get work done.
Developing the skills required for either of these methods is the main point behind group projects, of course. I wouldn't be half as good a software engineer if I only ever wrote code alone-- knowing how to document my work so that other people can pick up where I left off is a crucial part of my (future) job. Organizing a group of other software engineers to design and build software together is a skill that I have to learn to be an effective engineer, otherwise nothing big would ever get built.
I sort of wish that someone at Caltech had pointed this out to me during my freshman or sophomore year. I feel like I could have been paying more attention during these projects, and tried to glean more from them personally. Maybe we could all benefit from leadership training, or from tips about cooperation and organization. In any case, I think I'm now pretty well prepared for working well with others, which, of course, everyone must do once they graduate :)