I have done something similar with my "extranet" website.
The key is that you need two separate skins each of them set to different pages for their menu. The way we use it is we have public pages that everyone can see and restricted pages that only members of a particular role can see. All of these restricted pages are children of a single page named Team. The first skin is the default site skin and it's menu isn't any different from any other skin. The second skin is applied to the Team page and all of the pages under it. This skin has StartingNodeOffset="1" set on the SiteMenu control so when an allowed user browses to a page using the second skin, the menu changes, only showing them the pages in the "Extranet."
This is all explained in more detail in the Visual Partitioning document.