>As I can see this still fits to user control and master pages.
The code behind GetHeader() and GetFooter() is big and handle a lot of things. It was important for me to sit in the object itself to handle all that. It is also much easier for a junior developer to take over after the project as everything is in the class within two methods.