As far as I remember atexit registers a function that is going to be called before program exits by any circumstance, that function may print a single global variable updated with a number representative of the last routine called, or a variable with the last error found or whatever, that and the hooks and try-catchs, whatever to have an idea of where the problem is.
Cit, I deleted that folder twice last month, and no better results, BTW, thanks for the advice.
In any case, the behaviour is interesting, I start the computer and AH, sooner or later a CTD. If I continue launching AH, sooner or later CTD again most of the times, but with a soft reset after the first CTD, the result is no more CTDs in a long period. It seems to me like some unitialized pointer or variable being used by AH, any driver or even DX8.1. If you are lucky, that variable may starts with 0, else with any random content, perhaps a very high value, who knows ...