Well, competition for jobs (especially the top ones) has never been so fierce. I remember my first job out of undergrad was programming for a (then) pretty well known hardware company. I cracked open a book on "how to write device drivers" the day before my interview and breezed through the interview and got the job. This would literally never happen today. Interviews (even at no-name "dog" companies) are so much tougher these days and there is so much competition that there is no longer room for mistakes.
These top employers are seen as kingmakers for engineers' careers. It's totally believable that one would spend months (or even years) preparing for a single company's interview.
How long ago is this?
When I was in school 10 years ago, I know I spent ~3 months studying for my upcoming interviews. I memorized all the big algorithms, and an entire book of programming puzzles.
Prior to that, in HS, I remember reading on /. about programming puzzle interviews.
i remember having a stark realization one day that i probably couldn't get hired to do the same damn job again with any reliability, so thats when i took things into my own hands and started a company so i could deal with a different set of problems other than ace-ing stupid interviews.
that was right when i heard questions about interviewees being left in a room alone for 30 minutes, were being asked idiotic questions like "how many ping pong balls..." or being put in uncomfortable situations on purpose to test their reaction, dumb riddles, or any of a number of other non-work-related questions.
as someone who now has interviewed hundreds of people and hired dozens, i can unequivocally say that the above techniques are a stupid, idiotic, fucking dumb and counterproductive waste of time for hiring good people _for anyone who does not have the time and luxury (read: cash) to indulge in it_.
i would fire anyone who worked for me that insisted on doing interviews like that, because we are not google or mckinsey or goldman sachs and we do not have a never-ending supply of money.