I ended up writing a sort of html-like script / gui thingy for handling this sort of thing. For a start it's all mesh based and therefore not resolution dependant and it takes a lot of the leg work out of if this area / button is pushed do this, if you roll over this area / button do that. It just gives you a generic solution for all non game screens.
It's got commands like
<item>backgroundmesh="dna.b3d" turn="0,.1,0"</item>
which puts the dna.b3d mesh behind everything and rotates it .1 yaw every loop.
The screen positioning is all done from -1 to 1 in the x and -1 to 1 in the y with justify left / right / centre etc.
Text can be any colour, size or alpha. Then you get colour or image changes on roll overs, and so on.
It gives you a nice frame work which you can build on too as you need to add more features to your title screen.
On top of this I have a raiseevent command that if you click or roll over, if it can't handle it generically it returns back a string of the events raised, which you then capture and do stuff with it.
<item>img="startgame.png" x=-1 y=-1 align="topleft" raiseclickevent="startgame" <rollover>img="startgamealt.png"</rollover></item>
Which will display the startgame.png image in the top left, when you roll over it the image will change to the alt version and when you click it the update function will return "startgame"
Likewise you could have
<item>txt="Start Game" x=-1 y=-1 col="ff0000" align="topleft" raiseclickevent="startgame" <rollover>col="ffffff"</rollover></item>