If his idea of nuking the ui_charname_.ini file and recreating by relogging in that char, then there will be something different in the 2 .ini files created. It is just a text file. Someone do a diff on the two .ini files and report changes.
I suspect one would find nothing of import (a few window locs different, etc).
The targetting ring is created by reading a few .tga files from whatever UI folder you've selected. Supposedly, as with any other required but missing file, if your UI does not provide a new file or files, it defaults to reading said files from the default UI folder.
Now, to my knowledge, eqclient does not do any sort of caching of these UI files, so it's not likely going to result in a persistent problem from any form of cache being corrupted. The remaining possibility is that either the default target ring .tga files or your custom UI folder's set of target ring .tga files have become corrupt somehow. But how likely is that? The files are *never* written to in normal operation, so corruption seems a remote possibility.
For those with missing target rings, how about you review your UIErrors.txt file and do a tail on it (ie. look at the last entries toward the bottom). You can also delete the file just fine, rerun eq and it creates a new one when trying to load default or custom UI's. Review that thing and see if it reports XML errors. It also posts warnings that the client never sees. For instance, if a required file in a custom UI is missing, it'll report that the file is missing and that it is defaulting to the default UI version. My point is, perhaps some useful clue will be in there about the target ring files (either the .xml files that reference it or the .tga files themselves).
For reference, the files that the client needs for proper targetting ring are TargetIndicator.ini and TargetIndicator.tga (the graphic itself). Oh and that .ini file has instructions on use at it's end.
So, after all my 'thinking out loud', let me point out by saying I do not intend this post to be a quick solution - I have no all-inclusive solution yet. I wanted to walk through my understanding of the issue and get folks who read this to think it through and perhaps offer their ideas or solutions. I hope all this helps.
My money is on something being wrong in the complex .ini file. Some cards won't deal well with some of it's settings and fiddling with it might fix it. Just a guess.