Hi Badger,
I can't tell you why the fixed files work apart from the fact that they have proper values in them. My guess is that Blender isn't "fixing" the files as such, it's simply ignoring the bad values or changing them so they're reasonable when it loads the file. It writes the file out with proper values. I would suspect that the file generated by Blender is not exactly like the original model in some small way though.
I'll tell you what the problem was. OBJ files working by having lists of all the vertices, normals and tex coords. When a polygon is defined in the file it's done using numbers which refer to an item in one of those lists. For example, a polygon might be defined like this:
face 34 35 36
That means there is a 3 sided face or polygon made of vertices that are the 34th, 35th and 36th items in the vertex list. The problem in the files that crashed was that one or more of those numbers was more or less than the number of vertices in the list. Lets say you have 4000 vertices. The bad values in the file were numbers like 103821 (for example :-), way more than the actual number of vertices. TG2 should not have crashed due to this however, it should having ignored those problematic values.
BTW, anyone who knows the OBJ format will realise my description above is not really accurate, but it explains the basic idea.
Regards,
Jo