I'm pretty sure this is how the 9700 does it, and from everything I've heard the FX does it the same way:
When a pixel is not on a poly edge, you know that each MSAA sample for the pixel will have the same color. So you only store the color once. There is probably a flag bit somewhere in the hierarchical Z buffer that says whether the sample is part of a non-edge pixel; when such a pixel is read out for the DAC, it just uses the single stored value instead of reading a separate value from each MSAA sample.
When another poly is drawn with an edge or intersection that runs through the pixel, each MSAA sample will then need to have its own color. So space is always reserved in the MSAA sample buffer for all the samples from each pixel, so the pixels can be addressed uniformly and so there is space for the additional sample values if necessary.
In other words, the compression doesn't really save space in the frame buffer, but it has the potential to save a lot of framebuffer bandwidth (6x on 9700 for 6x MSAA, 4x on GeForce FX).