Patched Q3 source a little to eliminate this bug in Win Vista.
Here is the builded executable (Release configuration, Visual C++ 2008): http://rapidshare.com/files/138940473/quake3_vista_fix.rar.html

Here is the patch-file content (useful for programmers who want to build it themselves):

--- code/win32/win_gamma.c 2005-08-15 18:10:08.000000000 +1100
+++ code/win32/win_gamma_patched.c 2008-08-21 18:38:51.580166200 +1100
@@ -151,7 +151,7 @@
// Win2K puts this odd restriction on gamma ramps...
vinfo.dwOSVersionInfoSize = sizeof(vinfo);
GetVersionEx( &vinfo );
- if ( vinfo.dwMajorVersion == 5 && vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT ) {
+ if ( vinfo.dwMajorVersion >= 5 && vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT ) {
Com_DPrintf( "performing W2K gamma clamp.\n" );
for ( j = 0 ; j < 3 ; j++ ) {
for ( i = 0 ; i < 128 ; i++ ) {

Short description for non-programmers: Q3 checks that it's running under "Win2k" by checking OS major version. Win2K is NT 5.0, so major version is 5, XP is 5.1 so Q3 also works correct on XP, Vista is 6.0 and the condition (vinfo.dwMajorVersion == 5) evaluates to "false".

Sorry for ugly english.