Steve,
You might like to have a look at my post where I've used an include page:
http://www-10.lotus.com/ldd/xpagesforum.nsf/topicThread.xsp?documentId=DEB795C42373AB03852578720044B80A&action=openDocument&SessionID=CTSMBQDETU
Basically, create an XPage with an embedded include page. In the include page "Options", "Page name" compute the value with "context.getUrlParameter("Page")
Then direct your browser to "xxx.xsp?Page=includedPageName.xsp". The included page should pick up the Page parameter and show the "includedPageName.xsp" XP
For the menu bit, I've used a tree menu:
http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/Tree%20XPage%20Control
which has a URL for each leaf item. When you click on the leaf, the URL (with the Page parameter) is loaded and the
included page is shown.
Let me know if you're struggling and I'll try to help.
Kev