Recently Joel of Joel on Software published this quote:
"A long time ago, it became fashionable, even recommended, to disable menu items when they could not be used. Don't do this. Users see the disabled menu item that they want to click on, and are left entirely without a clue of what they are supposed to do to get the menu item to work. Instead, leave the menu item enabled. If there's some reason you can't complete the action, the menu item can display a message telling the user why."
I could not disagree more. When we disable a menu-item we put a tool tip to indicate to the user why the menu-item is disabled. In fact isn't it irritating when you choose a menu-item and then it says something to the effect of, "Sorry you can't do this because you haven't done x". If Joel had his way we'd all be wasting our time.
Good thing Joel in not in charge of designing any software that has any significant market share. With this sort of advance one can understand why.
P.S. Even more scary he's written a book, "User Interface Design for Programmers". Of course no surprise people don't seem to really like it.