I changed the code as suggested to inlcude the VAL() statement, and I get the same results as you.
winword.exe path from the registry is: C:\PROGRA~1\MICROS~2\Office\WINWORD.EXE
Up-to-date file version is 9.0.0.4527
Version found is 9.0.3822
9.0.3822 is greater than 9.0.0.4527

What confuses me about this is if I go to Explorer and the properties, then the version tab, the Version number shows 9.0.0.3822. In the additional properties in that window the product version is what displays 9.0.3822. Also, if 9.0.3822 is greater than 9.0.0.4527, I would think that replacing the < with the > would take care of the problem, but that isn't the case.

The KIX version is 3.62.0.0.