It all starts with the mainmenu. Many developers and template designers seem to think that they should use this menu for their drop downs, or perhaps the 'main' menu of the site. This menu should be for internal purposes only and should never be shown on the front end. Your main menu is essentially a sitemap, with all your links properly set up in a nice tiered format.
All publicly visible sites are generated from your main menu by using the 'menu alias' feature. The big advantage of this is that now when you change your mainmenu, all the links that are menu aliases will update as well.
Its also wise to create an additioanl menu called hiddenmenu which can be used for links that you wish to assign modules to but don't want to have accessible from any visible menus. There are numerous reasons you might want to do this, and its just a good idea to have some a menu that won't clutter up your nice google sitemap with links you don't want those bots crawling.