To run StateMenu you'll need X, Python, and PyGTK (at least 2.0).
You'll also need a compatible window manager. I.e., a window manager that either sets the _WIN_DESKTOP_BUTTON_PROXY property or allows direct access to root window button events. I've tested it with Xfwm4 and Metacity.
To use StateMenu with Nautilus you'll need to specify a menu for mouse button 2 (see the configuration section for more details).
To use StateMenu with Xfce4 (specifically, xfdesktop), you'll need to configure it to use mouse button 1.
If you use ROX pinboard, you can specify a different menu for each mouse button. You will need to select the "Pass all backdrop clicks to window manager" option from the options dialog under "Compatability".
None of these three environments is by any means required. I just happen to have tested StateMenu under each of them.