Firstly which language and country version are you using (The US is starting to get like Belgium and Switzerland these days, with all the language options, US, CA, FR, ES and with 2 countries, makes 8 versions.
First try using differnt language, then see if you can replicate this using W1 executables and STX.
Its almost impossible for the STX file to be corrupt, since it has a built in check sum, and would not allow you to start if it had an error. It could be though that you have mixed versions. EG SP1 STX with SP2 EXE.
Sorry, its not as simple as that, since the US version, now has 4 languages (ENC, ENU, ESM and FRC), and the issue could be with the language versions of the STX file being incomplete, or the wrong version. So its important to know which language and which version of STX you are using.
At first glace it looks like either a version mis match, eg, sp2 executable with sp1 STX file (generally the other way around is the same problem), or you have a bad language file in there somewhere.
A common issue is if you installed SP2 and SP1 onthe same machine, and some where the files are mixed up.
In any case my first suggestion would be to completely remove 4.00 SP1 (you don’t need it) and install SP2. SP2 Can access an SP1 database, so it will work cleaner that way.