This is one of the things in MOSS 2007 / WCMS development which are not obvious but can save some time if you know it. Some time ago i blogged about the PortalSiteMapProvider and how you can use it to build your custom navigation: PortalSiteMapProvider, SiteMapNodeCollection, SiteMapNode - SPNavigationNodeCollection, SPNavigationNode and IsVisible and PortalSiteMapProvider and SecurityTrimmingEnabled. These things work really fine but if you want to have external links in your navigation you need to be aware that the object behind a navigation node can be different.
[More]