When using AcceleratedX (5.1 laptop edition, but it doesn't look significant), xscreensaver as used by gnome doesn't turn off the screen (which it does with XFree86, and AcceleratedX is capable of its own).
What happens if you run 'xscreensaver-command -lock' (or -activate) from the command line?
It starts the screensaver, of course. This wasn't the problem - the problem is that the screensaver, after having running for the specified amount of time, isn't able to switch the screen off to conserve power. After some time, it goes blank - but not off. And the reason for this, seems to be that it tries to use an XFree86-specific extension - XFree86-Misc. This isn't supported with other X servers. Checking for such a possibility and instead using standard ways to do it if this extension isn't present would solve the problem. This shows up in the .xsession-errors: Xlib: extension "XFree86-Misc" missing on display ":0.0" xscreensaver-command: no screensaver is running on display :0.0 xscreensaver disabling builtin screensaver xscreensaver: you can re-enable it with "xset s on"
If the extension isn't there, there isn't a standard way to do this.