if you use publishing feature, you can manage what navgation links are hidden, what navigation links can be shown for curent user. It is difficult to implement in your custom provider. In this case you can try to get navigation nodes from default publishing provider. This provider is called PortalSiteMapProvider.
In web configuration you can finde its declaration
<add name="CurrentNavigation" description="Provider for MOSS Current Navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" Version="14" />
In your code you can retrieve nodes for current location like this
ProviderSettings settings = new ProviderSettings("GlobalNavSiteMapProvider", "Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c");
settings.Parameters["NavigationType"] = PortalNavigationType.Current.ToString();
settings.Parameters["EncodeOutput"] = "true";
settings.Parameters["Version"] = "14";
PortalSiteMapProvider provider = (PortalSiteMapProvider)ProvidersHelper.InstantiateProvider(settings, typeof(PortalSiteMapProvider));
PortalSiteMapNode currentNode = (PortalSiteMapNode)provider.CurrentNode;
var nodes;
if (currentNode != null)
{
nodes = currentNode.GetNavigationChildren(NodeTypes.Default, NodeTypes.Default, OrderingMethod.Manual, AutomaticSortingMethod.Title, true, -1);
}
Then you can go through this nodes and check node type. if node.Type & NodeTypes.List you can retrieve this list by node url, retrieves views url for this list and add new nodes to current list node.
Then you can bind this node collection to the sharepoint asp menu.
Also you should keep in mind that sharepoint menu is configured to display only 2 levels by default. So you should modify its markup.