Under Windows, the method getSystemMemory of the class IOSOperator uses the system call GlobalMemoryStatus, which returns incorrect data if the physical RAM present is more than 2GB and overflows if there are more than 4GB.
I made the method to use GlobalMemoryStatusEx, which works correctly with any amount of RAM installed. It's present since Windows XP, so there shouldn't be compatibility problems.
However the method return values are still u32 types, so it will work correctly only with less than 4 Terabytes of RAM present. Should be enough for everyone though (tm)
Enclosed the DIFF file
Thanks! Applied in Irrlicht 1.8 release branch in revision 5376 (merge with trunk will follow soon).