$PROGRAMFILES should work on any OS, i can only assume you're referring to it not being the same based on different OSes depending on it being 32-bit vs 64-bit, etc as per ->
http://nsis.sourceforge.net/Docs/Chapter4.html#4.2.3 which explains what to use and when i.e. you'll need to do some work to ensure it's using the correct version for whatever it is you're trying to install. though if it's a pure 32-bit app then $PROGRAMFILES should be all that you need to do and not worry about it.
-daz