So why does this matter? Well, the simple fact is that many users struggle with dropdown menus on websites, and web designers shouldn't make it even harder for them. From my experiences of usability testing dropdown menu prototypes, I've seen firsthand the difficulties average readers have with this mode of navigating a website, especially when there are multiple levels of menus. A common tendency for users in these situations is to navigate directly to the deeper levels of a site, meaning that they often miss more general information higher up the hierarchy that is more relevant to their task. They become quickly confused about the relationship between the parts and the whole. It's best to save dropdowns for situations where the majority of users are going to be largely familiar with the navigation elements, and will better appreciate the menus reducing visual clutter.
Regardless of your opinions on the above issues, it's clear that the potential benefits and usefulness of dropdowns will immediately evaporate if a technical facet of their implementation has an annoying affect on users. The CSS menus are just that annoying. They switch context too fast for the average user to keep up with and the lack of a delay timeout means that casual slip-ups close the menu unintentionally without giving the user a chance to move the cursor back onto it. Sure - we're only talking about milliseconds here, but this small delay before hiding the menu makes a huge difference to the user experience. Web designers would do well to appreciate such subtleties.