As it was bugging me what the the exact fix of 98 comptability did the trick , I used the Microsoft Application Compatability Toolkit and tried all the compatability fixes. Out of the 367(339 were applied that didn't crash or were of the version lie catagory) available, this is one that fixed it:
Win98VersionLie - Hooks the GetVersion and GetVersionEx APIs so that they return Windows 98 version credentials (95 version lie worked also)
So something that is being done after the GetVersion routine in the program when the NT codepath activates that isnt' being done in the 98/95 code path is screwing up the alignment. And that is as much as I can narrow it down without dissambling it or source code.