In my current series of MSDN Events, we are covering site navigation. With site navigation, the data for the site map is (by default) stored in a file called web.sitemap that is accessed by the default SiteMapProvider. The provider model allows you to change this, and obtain your site navigational data from another source. I mentioned this during my events but hadn't had time to track down a specific example.
I finally found time to do a little research and uncovered this article from the Wicked Code column in MSDN Magazine by Jeff Prosise with Wintellect. In addition to showing how to return site map data from a SQL Server database, there are some other cool ("wicked") tips on ASP.NET 2.0.