It looks like you might need to install the power saving modules from XPe into XP to get it working....
Anyhow, i couldn't be bothered looking too deeply into this problem (i'm sure MS will fix it someday when one of their MSDN premium subscribers bugs them about it), so i wrote a workaround which might be sufficient for most people here (it is for me!).
Attached is a small app that'll run silently and leave an icon in your system tray. It looks out for WM_POWERBROADCAST messages and calls SetProcessShutdownParameters() to become the highest priority app to receive shutdown messages. If PBT_APMQUERYSUSPEND or PBT_APMQUERYSTANDBY are received (system is entering sleep / standby mode and the OS queries applications to see if it's okay to enter this state), the app sends back BROADCAST_QUERY_DENY to abort entering sleep / standby mode. A timer is then started, which calls ExitWindowsEx(EWX_POWEROFF, EWX_FORCEIFHUNG) to shutdown the PC.
So if you set your PC to 'standby' when your power button is pushed, this app will cancel the standby command, and shut down your PC instead.
See this post for an updated download.