i think i found a workaround. it worked for me, at least.
system specs: celeron g540, msi h67 mb, asus ml239h monitor (native resolution 1920x1080), latest intel hd graphics drivers (build 2509).
my motherboard has vga and dvi-i outputs, and my monitor has vga and hdmi inputs. i'm using the dvi to hdmi cable the monitor came with.
the problem: the graphics driver detects the monitor as a 'digital television', and sets the quantization range to 'limited', resulting in blacks that are dark grey and whites that are light grey. changing the option in the pulldown doesn't have any effect.
playing around with the resolutions a bit, i noticed that the limited range only occurred at certain resolutions. if you set the windows background color to black and scaling to 'center', you can immediately see which resolutions have this problem when you switch to them (the border would be the monitor/tv's true black and the windows desktop would be a lighter shade).
the solution that worked for me was to create custom resolutions to override the ones which have the problem.
i only use my monitor at 1920x1080, but this happened to be one of the problematic resolutions, so i created custom resolutions of 1920x1080, all color depths, and at both 59hz and 60hz (both of these appeared as acceptable refresh rates for my monitor, although windows defaulted to 59hz. i really didn't need to create the 60hz custom resolution). this resulted in a total of 6 custom resolutions. it warned that this custom resolution already exists (it didn't, but what it probably meant was that the new custom resolution would override a standard resolution), but i said yes to overwrite.
after rebooting, blacks were black and whites were white. confirmed this with calibration - before the custom resolution, the monitor calibrated to 120 cd/m2 luminance and a .5 black point. afterwards, it calibrated to 140 cd/m2 luminance and a .2 black point with the monitor settings untouched.
the quantization range now shows 'default' instead of 'limited'. however, changing it still has no effect, so if you need to change the range on a regular basis, this fix won't really do much.
hope this helps.