I got my first interview by persistently approaching Microsoft at my university's career fairs. My first interview was a typical screening interview, but face-to-face on campus instead of the usual phone interview. I was asked open-ended questions, such as how I would design an alarm clock for a blind person and what my favorite computer application was and why.
The next stage of the interview process was a fly-out to Microsoft's headquarters for a full day's worth of interviewing. All the travel and lodging was paid for by Microsoft and was organized very well. I had a recruiter at Microsoft who was in charge of planning my interviews, talking with the interviewers and making the final hire decision. He was a bit pushy, but I can't say that's representative of all Microsoft recruiters. I got to the recruiting building in the morning and met my recruiter face-to-face with a few other students who were also interviewing for internships. We were given the name of our first interviewer and a description of their group and then shuttled off to different buildings to meet them.
All the interviews took place in the interviewer's day-to-day office, which was nice because I got a chance to see their normal work place and get a feel for the company culture. Microsoft is actually very laid back compared to what I had imagined. There are no cubicles, all of the full-time employees get their own office. The dress is very casual, and the normal dress seems to be a polo shirt or t-shirt and jeans. I decided to dress business casual that day (a collared shirt tucked into khakis) even though everyone had told me to wear a suit. Even then, two of my interviewers commented about how dressed up I was! The building I interviewed in had an XBox lounge (they bought a Wii too later that summer) and a kitchen stocked with free coffee and soda on each floor.
My first two interviews were about an hour each and were pretty standard technical interviews. My third interview went a bit longer because we went out for lunch and talked casually (although this was still considered part of the interview). When we came back from lunch, I still had to answer a technical question before I set off for my fourth interview. My first three interviews were all with the same team and took place in the same building, but my fourth interview was with a different team.
At the end of the day, I went back to the recruiting building and waited for the results of my last interview to come back to my recruiter. I did well enough that I got offers from both teams I had interviewed. Note that my recruiter said that it usually takes about a week to make a decision on hire or no-hire for an intern, so this was an exception. However, this actually wasn't all too helpful because they still only gave me one week to make a decision! My recruiter really pushed me to make a decision as soon as possible but didn't respond to my emails for the first half of the week (in his defense, he was sick), so I pushed my decision a bit longer than a week. I wish I had been given more time to interview with other companies, but I didn't push my decision any further and decided to accept the offer (after all, it was a pretty good offer).