This is for a SDE internship. My relationship with Microsoft began when a friend of mine invited me to a dinner with some Microsoft employees who were visiting my university's campus. I later spoke with them and gave them my resume at my school's career fair, and was offered an on-site interview. It lasted thirty minutes and was very enjoyable; I was asked to do a string operation and design a certain object from an OOP perspective. Easy enough, and I had a lot of fun talking with the interviewer about Microsoft and my projects/interests.
A few weeks later, I got an invitation to fly out to Redmond to interview on-site for the Operating Systems Group. Microsoft paid for all of my expenses, and I stayed in the very pleasant Marriott Hotel. I arrived on campus at about 8:30 AM and my first interview was at 10. I spoke with the other interns and some of the staff before my first interview, all were friendly. I had a total of four interviews, one of which was over lunch (the food at their cafeterias is excellent, by the way). All were a lot of fun, and my interviewers chose good questions - ones that could be looked at in many ways, answered in many ways, and expanded on. This made our discussions very interesting. I was extremely tired by the fourth interview, as I had only just arrived at my hotel at midnight the previous night. I got back to the hotel at around 3, and took a nap. My flight didn't leave till close to midnight, so it was a long night getting home...
But worth it - I received an offer a week later.
Be sure you know your sorting and search algorithms and are knowledgeable about the various properties associated with strings, as well as (non)linear data structures. Be able to compose good algorithms, and you should be fine.