I encountered this issue after I tried to make some modifications to a model file. I wanted the game to recreate the models.cached file, so I backed up the original and removed it from the models directory. Upon startup of the game, it kept crashing at the "Loading Data 3/3" step. I had error logging turned on, and this is what I found at the tail of the file:
12:49:26 PM (Reporting) TListModels.Create 861 models loaded, out of 861 models files in 9995 ms
12:49:26 PM (Reporting) TListModels.Create No models have an AIRole Raider or Skirmisher, this sounds suspicious! (used to check if a leader allows structure burning & Help the AI for some missions)
12:49:26 PM [Critical ] TListModels.Get Data container for models definitions has some discrepancies, for UID 53
I checked my models directory and the model file for UID 53 was missing. The corresponding unit file existed in the units directory. This was true of several model files in the UID 50-70 range, as well as UID 125. I restored those files from a previous backup of the 1.03 directory I had made, and the game was able to recreate models.cached after that.
Before that, to test the problem specifics, I created an empty models.cached text document and placed that in the models directory. The game would start but of course it would crash when launching a scenario.
The process I had used to install the game was (this was all in the span of last night):
Install base 1.00.
Patch to 1.03.
Patch to 1.04.
While on 1.03, I tried recreating the models.cached file from scratch and there were no issues. Looking at my backed up 1.03 directory, all the files appear to correspond with unit files. After installing the patch for 1.04, the game was working fine. It wasn't until I deleted the models.cached file that I ran into problems. Last night, I deleted that file before I made any changes to model files. I didn't start checking the models directory for missing files until this morning.
I'm on Windows Version 6.1.7601.