Well, this is a really difficult question to answer. The description you were given is vague... and in the vagueness, it is "accurate".
Let's see how much muddier I can make it... 😉
[b]
You have roughly three layers that need to talk:[/b]
Hardware (graphics card)
Drivers (talk to the graphic card and game)
Game (talks to the drivers)
And with CrossOver you add a fourth layer in between:
Wine (talks to the game & graphics cards indirectly, acts as a translator so to speak)
In those layers, any number of things can go wrong.
A lot of problems (especially where Wine is not involved) are driver problems. The card will advertise to the driver that it has XXXX number of color depth or shaders or something like that but the driver gets confused and tells the game that there are YYYY number of color depth or shaders or something like that. This results in the numbers not matching and causes color trouble or graphic stretching or a million gazillion other pieces of graphic problems.
A number of other problems are bugs in the game (sometimes it is only tested on Nvidia cards with Nvidia drivers so the numbers the game is giving do not apply to the values an AMD card expects or vice versa).
Then, add in Wine. Wine (CrossOver's base technology) translates the calls between the driver/hardware/game and honestly Wine (CrossOver) doesn't get it right all the time. In fact, Wine is always maturing, so as it moves forward, it gets some things plain wrong.
I wish I had a more concrete way to tell you how graphic trouble happens but there are too many contributing factors for me to just be able to say "a" is caused by "b" because of "c".
As far as fixing them... that all depends on where the problem originates. If it's Wine and we can clearly define the problem within Wine it is a matter of us fixing it. If it's a driver problem, then the Graphics Card Developers have to be informed to fix it and if it's a game bug, then the Game Developers have to be informed to fix it. Fixing bugs takes a bit of time, even when they are understood. Sometimes it's quick (oh look, a badly placed comma or that was declared wrong), sometimes it is terrible (oh, we have to implement that entire function...).