Heres what I do:
I process all content (most of it anyways) through default.php
I create the layout using a table.
top row:
banner
second row:
1st <td> = menu include( <? include ("inc/menu.inc"); ?>)
menu items link to:
"default.asp?page=content_here"
2nd <td> = content include ( <? include ("page/$page.htm"); ?>)
3rd <td> = advertizements, right column content
third row:
footer (copyright, legal, etc...)
you can use the querystring to tell the content td which page to display.
this way, you never have to duplicate any code. - it's much easier to edit too if you organise your directories well.
if you want to see it in action see my website (button below)
look at the address bar to see the querystring values