I've just gone through interviews at Google and Apple.
At Google, I was asked mainly theoretical questions - big-O, maths/stats, etc. And one "real" architecture/design question at the end. There were 5 interviewers and maybe 7 questions, sometimes 2 per interviewer but usually just 1 that lasted the whole hour. According to my recruiter before the decision, it was maybe 50/50 that I'd get an offer, and I did very well on the real-system design question (by inference, not so well on the others :). I didn't get the job.
At Apple, I had a seven-hour interview with seven interviewers. There were many many questions, far too many to easily remember categories, but they were all focussed on things I might end up doing, or problems that I might end up encountering. I got the job. I guess I do better with "real world" issues than the "consider two sets of numbers, one is ... the other is ...) type.
I have the self-confidence^W^W arrogance to believe I'm an asset to pretty much any company out there, but interview processes are nothing more than a gamble. Sure you can weed out the obvious under-qualified applicants, but frankly (unless the candidate is lying, and in the US that's a real no-no, in the UK padding your CV seems to be sort of expected...) that sort of candidate ought to have been pre-vetoed by the recruiter before getting to the interview.
I've yet to see the interview that guarantees a good candidate will do well. It's all about preparation: can you implement quicksort or mergesort right now, without looking it up ? The algorithm takes about 20 lines of code... Some interviews will require you to have knowledge like that; others are more concerned with how you collaborate with other candidates; still others are concerned with your code quality (I've seen a co-interviewer downmark a candidate for missing a ; at the end of a coding line. I wasn't impressed ... by the co-interviewer. But that's another story); still others are ... you get my point. Whether you do well or not can depend more on the cross-intersectional area of the interviewers style and your own credo than any knowledge you may or may not have.
So go in there expecting to be surprised, prepare what you can, be prepared to do wacky things to please "the man" interviewing you. For a good candidate, over a large number of interviews, you'll do well. The problem is that we often want a specific job, and we get depressed by the first dozen or so failed interviews. There's nothing more you can do than pick yourself up and try again. It's instructive to note that second-interviews at companies often go better than first-interviews, possibly because you're forewarned about the style a bit more, and therefore a bit better prepared...