The largest part of GPU driver installs over the years has been bug fixes and/or improvements for specific games.
I can speak of a specific example of a GPU driver bug-fix, because I am the coder responsible for such a bug in Microsoft's Age of Empires (1997)
During the game's development in 1996 and 1997, we did not yet have 3D cards with 2D functionality (the stand alone Voodoo 1 card existed). Instead we were using 2D cards with 512K to 2MB of VRAM, capable of generating frame buffers up to 1280x1024 with 8-bit indexed color. These were VESA era cards, many of which used bank switching of 64K windows into the onboard VRAM.
Microsoft's DirectDraw API did for Windows 95 what UniVBE basically did for DOS games of the era - presented VRAM as a linear frame buffer that worked on (most) all video cards, and did any bank-switching needed behind the scenes by trapping the CPU fault when you wrote to a VRAM address that wasn't currently mapped to the card, and switching the address remapping and GPU VRAM bank transparently before resuming your code.
Using the DirectDraw API you had to issue a Lock() command to get access to the VRAM, and then Unlock() it when you were done copying pixels to it, so that it could do things like present the current frame, or next frame if you were double buffering, or execute a blit, which may or may not involve support hardware on the video card. The Unlock command would invalidate the mapped memory region to the GPU.
In one spot in the code of Age of Empires, I forgot to call Unlock(). On all the 2D cards in 1997.. it didn't matter. You could still write to the video card buffer and it was ok. Once we started getting GPUs with 3D and more VRAM like the nVidia GeForce 256 and ATI Radeon 9600, which also meant newer version of Direct3D (DriectX), etc, the code in Age of Empires would crash the game.
Both nVidia and ATI put code in their drivers to specifically detect that that game, and fix the problem so that the game ran, despite being a "bad citizen" and not calling Unlock(). This was keyed, at least in part, off the .exe filename. If you renamed empires.exe to expires1.exe (or anything else), the game would crash as soon as you attempted to start a game.