You could also do this with the built-in remote features of MC.
I have achieved this. It wasn't straightforward. Here we go:
1. Disable Hibernation and Hybrid Sleep on your computer. If you want these for some reason, this solution may not work for you. I'm assuming Windows 7.
2. Make your system ignore the MCE "power" button. I did this by going to Power Management and making the behavior when the Sleep button is hit be nothing. I think there are other ways to achieve this (which you may want to look in if your computer actually has a physical sleep button on it and you actually want to still be able to use it).
3. Create a batch file anywhere on your hard drive with the contents "%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState".
4. Enable Remote/Other HID under Devices & Options.
5. Under commands, add a new custom command called Sleep. Check the box to suppress system handling (this may not be necessary, but makes the most sense). Have its only action be to run the batch file in step 2.
6. In the list of commands, highlight Sleep and click Learn up top. It seems like Learn only works if it's a command from an MCE remote (and even then only if you've done step 3), so give it some garbage one from the remote. I gave it the large loopy-looking arrow button above the D-Pad. To this day, I don't know what it does.
7. In Startup Options, ensure that Media Server (at least) is set to start when Windows does.
8. If you are not ready to have MC be your primary media player and are only doing this to get the discrete on/off but still want to use WMC as your primary media player, you'll have to uncheck Microsoft MCE in Devices & Options. Otherwise, the green button will launch both MC and WMC.
Phew, I think that's it. Hopefully there are no issues with this. I admit I have not actually tested this with a non-admin account yet, and I may run into a problem if the standby batch file requires admin rights. Still, I prefer this to setting up yet another third-party tool like EventGhost.
Also, if you follow Step 2 only, you'll at least get a discrete on button, which is better than nothing (this is basically Solution 1 from the original post).