One option is to have it entirely driven by client-side scripts which use remote procedure calls of some kind ot server-side scripts to perform functions and receive info.
This approach is complex to achieve, has significant browser-related issues, but has the potential to make a highly compelling UI if you can pull it off.
The basic building block is a Javascript object called XMLHttpRequest (Don't let the name fool you, it isn't restricted to XML) which is available in both Mozilla and IE. It doesn't behave identically, but should be sufficiently similar that you can make the same code worth with relatively little effort.
Then have all your HTML pages flat using CSS and Javascript files as necessary. Everything will be cachable in the browser (except RPC results of course), and bandwidth should be a lot less than using PHP to generate HTML directly.
Unfortunately it's really difficult.
I'm going to use PHP and HTML for my game, not client-script. But it will have a significantly less spacial aspect to it.
Mark