Bob is right. The newer versions of Trainz, starting with TRS2006 and upwards have increasingly more stringent error checking.
When an asset is broken, it'll cause other dependent assets not to load. A locomotive for example may not load because the bogeys are missing.
For the most part the errors are easily fixed, and there are numerous threads on how to do this.
Now this is not the program's fault, but is actually a result of not having error-checking in earlier versions. Prior to TRS2006, the program would load in content anyway even if there were mistakes. The content may not load properly, but it would load. The problem with this is stuttering and crashes as the program attempts to horse its way through the offending code.
Starting with TRS2006, the error checking got better. So now you'll start seeing assets with errors. Again the fixes are simple, yet they have to be done in order to get the objects to load properly.
With TS2009 and upwards, the error checking is even more strict, and what was okay with TRS2006, may or may not work properly with TS2009. For the most part, much of the newer content, being created in the last year or so, has been 100% error free, or at least this is what I've found. As people have become better at understanding what the faults are, they can ensure that they don't exist before the content is uploaded.
Now if you want to load older content, without fixing errors, you can using compatibility mode. There's a check box in the Options for doing this. This of course comes at a cost with performance because the program now has to horse through the mistakes just as it did before.
John