I was looking around for stuff in New York, and found a position which was posted by a recruiter. The recruiter directed me to apply for this position. There were a couple of early-morning phone calls, including coding exercises, before they flew me to New York for the interview proper. They flew me out Sunday for an interview Monday (all day) and Tuesday morning. (The Tuesday morning part was conditional on me doing well on the previous interview and involved meeting with the most senior people and a representative from HR). They put me up in an impressively expensive hotel.
The interview process was very long and involved, with a fair number of coding / design exercises. They tested the limits of my knowledge pretty well. There were questions I did not know how to answer (which they seemed to be okay with), and others which I was able to figure out given further inquiry (which they seemed to react positively to). There was a team lunch.
All told, they seemed to like me pretty well, but they went with a more qualified guy at the last minute.
I had some serious problems with communication with the company during the process, which may have hindered me. These were largely due to the recruiter acting as a go-between.