Also remember that most companies arent willing to spend nearly as much recruiting effort per candidate for interns, and understandably so. I interned at NVIDIA a few summers back (although in software not hardware) and the university recruiter said that they more or less don't consider applicants with less than 3.5GPAs for internships. At my school, probably 80% of the people I knew and considered to be "good" programmers had above that, so I think its a perfectly reasonable thing to do.