With the problem showing up on multiple machines in different environments, it sure looks like something in your executable(s) rather than any one customer's environment.
First thing I'd try would be to build the .EXE(s) on a different computer, just in case something on the usual one is causing problems (e.g. antivirus, disk problem etc.). It might be worth trying a build with antivirus turned off.
If that doesn't help, what I'd do next would be to scan all the source files for corruption, especially null characters ( CHR( 0 ) ). You can open your .SCXs, .MNXs etc. as tables and scan their columns. In addition to scanning for CHR( 0 ), I usually scan for low or high ASCII characters occurring unexpectedly. You could also examine those files for deleted rows and PACK them if some are present. Of course, before doing any manual hacking of these source files, back them up (or the equivalent in SourceSafe).
Another out-in-left-field thing to check is whether any of your procedures, snippets etc. are getting too large. Most early FP/VFP versions have a 64K limit on the compiled size of a single procedure. Sometimes, where code is updated regularly, its size slowly grows until it nears or breaks this limit.
Finally, since the issue looks like it's partially related to SourceSafe, you could also post your original message in that section, in case it's a SourceSafe quirk causing all this.
Regards. Al
"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov
Neither a despot, nor a doormat, be
Every app wants to be a database app when it grows up