When skinning a site, you want to be able to style the appearance of a particular element in a particular module with confidence that it will only take effect in the desired place. That may be site wide, it may be in a specific module, or it may be in a single instance of a module. As DNN element IDs are dynamically generated, they cannot be used as css selectors in skins, because the IDs may not be the same in other installations of the same site; if you use them, your skin may not be portable between sites.
That means using classes. Some DNN modules (eg. Documents, Announcements) kindly generate a class on a container div to let you know which module the markup belongs to. This simplifies skinning enormously, and should be standard practice for module developers. The good news is, in DNN5, it is! An enhancement that has been implemented automatically attaches a classname to a container element for the module.
However, I think further enhancements of this nature need to be implemented to improve the module skinning experience. For example, have you ever wanted to style an element only in a specific page mode (View/Edit/Design). Or when a specific user is logged in (eg. Admin, Host, perhaps a member of a user-defined role). Css classes on a page container (the pagemaster div?) that indicated the state of the current session in this way, would be a powerful addition to DNN.
That still leaves the question of how to style a specific instance of a module. With the module name class attached, we have it narrowed down, but we also need another class name to indicate the module instance. That can't be a page identifier, for portability reasons, and also because you can have several instances of the same module on a single page. I'm not sure how that could be done at present: anyone got any ideas?