It is relatively easy to make a SharePoint site anonymous for outside users. The easiest way I have found is to just go into any library and use it to get to the parent permissions.
Go to any library and edit the settings.

Edit the permissions.

Manage the permissions of the parent, this will lead you all the way to the top.

Now edit anonymous access.

Anonymous access for the entire site.

Now that you have set anonymous access, a user can still try and get a logged in by dropping the page name off of the url. If you would like the site to be totally anonymous you will need to run this stsadm.exe command from the prompt on the MOSS server. stsadm is located in C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN.
stsadm -o activatefeature -filename ViewFormPagesLockDown\feature.xml -url http://YourUrl:Port -force
For some reason Microsoft decided to limit the number of sites in the navigation to 50. If you have a large SharePoint organization or have imported from MS-CMS that you will almost certainly break that. But after a lot of bang my head on the wall I call MS
support and got the answer.
In the web.config for the site you are working on, located in C:\Inetpub\wwwroot\wss\VirtualDirectories\(Your port number), find name=GlobalNavSiteMapProfider. From there change the next 8 lines. Add DynamicChildLimit=”75″ to the end of the each one. You can change it it any number you like but 75 was good for me. Setting it to ‘0′ makes it unlimited. Sorry this is not web friendly.
<add name=”GlobalNavSiteMapProvider” description=”CMS provider for Global navigation” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Global” EncodeOutput=”true” DynamicChildLimit=”75″/>
<add name=”CombinedNavSiteMapProvider” description=”CMS provider for Combined navigation” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Combined” EncodeOutput=”true” DynamicChildLimit=”75″ />
<add name=”CurrentNavSiteMapProvider” description=”CMS provider for Current navigation” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Current” EncodeOutput=”true” DynamicChildLimit=”75″ />
<add name=”CurrentNavSiteMapProviderNoEncode” description=”CMS provider for Current navigation, no encoding of output” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Current” EncodeOutput=”false” DynamicChildLimit=”75″ />
<add name=”SiteDirectoryCategoryProvider” description=”Site Directory category provider” type=”Microsoft.SharePoint.Portal.WebControls.SiteDirectoryCategoryProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />
<add name=”MySiteMapProvider” description=”MySite provider that returns areas and based on the current user context” type=”Microsoft.SharePoint.Portal.MySiteMapProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />
<add name=”MySiteLeftNavProvider” description=”MySite Left Nav provider that returns areas and based on the current user context” type=”Microsoft.SharePoint.Portal.MySiteLeftNavProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />
<add name=”UsagePagesSiteMapProvider” description=”Provider for navigation in Portal Usage pages” type=”Microsoft.SharePoint.Portal.Analytics.UsagePagesSiteMapProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />