Just to add to this.
If you're running in 32 bit mode (even on a 64 bit os), SpecialFolder.ProgramFiles and %PROGRAMFILES% will return ..Program Files (x86).
If you specifically need one and/or the other then you'll need to check as follows:
32 bit system:
SpecialFolder.ProgramFiles
= ..Program Files\
64 bit system in 32 bit process:
SpecialFolder.ProgramFiles
= ..Program Files (x86)\
Environment.GetEnvironmentVariable("ProgramW6432")
= ..Program Files\
64 bit system in 64 bit process:
SpecialFolder.ProgramFiles
= ..Program Files\
Environment.GetEnvironmentVariable("PROGRAMFILES(X86)")
= ..Program Files (x86)\
Obviously this depends on your locale etc...