XServer tries to deterimine the best resolution and refresh rate at startup.
It does this firstly by polling the screen to figure out what the highest supported refresh rates is.
If your screen is switched off the lowest refresh rate and thus the lowest resolution is assumed.
For all the juicy bits on how to configure your xserver to use the same settings at startup (regardless of whether the screen is switched on or not) follow this link
http://ubuntuforums.org/showthread.php?p=454217
Hope it helps
Worked for me