I looked at the actual source code of ICElp in versions 67 & 1.26; there is no difference between the versions relevant to this issue. Both use a function called GetWindowsDirectory to get the path for icetcp.ini.
Under the documentation for GetWindowsDirectory, I found the following:
Terminal Services: If the application is running in a Terminal Services environment, each user has a unique Windows directory. If an application that is not Terminal-Services-aware calls this function, it retrieves the path of the Windows directory on the client, not the Windows directory on the server.
My guess is your version 0.67 iICELp is "Terminal-Services-aware" and your 1.26 is not. I'm not very familiar with TS, but I'm guessing this means your Terminal Services has only one registered. Or, if both of them are registered, perhaps TS can't work with two different copies of the same program (ICElp.exe), and is ignoring the second one. ...just a theory.
JimN
P.S. The newer version can store certain pathnames internally in a larger buffer, so long pathnames don't get cut off. This could account for the error you are getting in the older version. However, as I said, this has no bearing on where the program puts the INI file.