There was a technical Skype interview followed by a series of interviews on-site. These interviews were for an entry-level university full-time position for the Oslo office in Norway.
The phone interview was straight-forward, with a palindrome programming question, followed by some questions of general computer science topics (complexity, memory, etc.) in addition to some specific questions regarding my area of expertise.
Within a couple of days, I received an email with the details on how to book a flight to their office for an on-site interview.
The on-site interview was a little bit more thorough; each candidate underwent 3-4 interviews in a row, rotating interviewers every 45 minutes with a 5-minute break in between. Each interviewer started by asking some general, open-ended questions - not necessarily relating to programming. They told me that the interview process had recently been changed across Microsoft and that these open-ended questions were asked to gauge how the candidates think. The first two interviewers then asked some programming related questions (write a linked list in C, how does memory and resource management differ from C and garbage collected languages,) along with some discussion. Note that we were asked to program on a white board. The third interview asked a different and unexpected question about building a library (not the programming variant) that can support millions of users; what factors should you consider when building such a library (e.g. how to organize the books, how tall should the shelfs be, etc)? Note also that each interview ended by asking if I had any questions, so it would be wise not to ask every question to the first interviewer.