I think it should be quite doable with double buffering.
Render the viewport from one viewport camera, tint it cyan, store in backbuffer, render the viewport from the other camera, tint it magenta, composite in the backbuffer, swap front/backbuffer.
Never tried it though… I guess Nathan is the right address for that.
For shutter Stereo3d it would be difficult.
“Basically” all you need to do is to switch the viewport cameras position 120 times per second, enable vsynch and synch the image to a shutter device
But then again, while Stereo 3D works fine with all nvidia cards and DirectX, IIRC the Stereo3D in OpenGL only works with Quadro Cards. Nvidia made sure that you pay dearly if you want to use it. We got Premiere and AfterEffects Plugins to cut video directly in Stereo, only works with a Quadro.
So I guess if someone´s to do it, go ahead, but I doubt BF is willing to support a feature proprietary to hardware.
I´d have to dig in my bookmarks, not long ago I posted an FOSS library that should be able to enable Stereo3D hardware independent, leaves you with the problem to synch to a shutter device.