In the documentation (header file) there is written: "If you pass in the TA_SYSTEM flag and you don't have "admin" or "elevated" permission then the call will fail."
This is always true on Linux & Mac OS X (they require elevation). On Windows it depends. For normal configurations, both limited users and admin users can use TA_SYSTEM unimpeded. However, there's the matter of the Group Policy Editor. Some users do really stupid things with the Group Policy Editor (messing up permissions, etc.), and if that's the case then it will fail.
So, yes, you can get away with using TA_SYSTEM for all users on Windows, but it's recommended you just use CheckAndSavePKey(0, TA_SYSTEM) in your app's installer to be on the safe side.