I stuck some egrips on my Canon S90 and I'm pretty happy with the result.
I updated my picture slideshow screensaver cbsaver with a "ForceWindowed" option, and a special mode if you set TransitionMillis to 0. ForceWindowed makes it use a full screen size window instead of actually going to full screen ddraw. This takes a lot more CPU, because it uses blits instead of flips, but I found the full screen ddraw caused some odd flickers on certain graphics cards. The whole point of cbsaver is that the transition from desktop to screen saving should be completely smooth and non-distracting, so the screen jumping to full screen was unacceptable. The TransitionMillis=0 mode makes it just flip pictures and skips a lot of the complication so it's much faster; the goal of this is to avoid spinning up my laptop when it's in low-heat mode.
Which reminds me : I'd like to guarantee that cbsaver in TransitionMillis=0 mode doesn't make the CPU come out of low speed mode. If I use a lot of CPU for some reason, I'd like my app to just run slower, not kick up the CPU clock rate. So far as I know there's no way to do this. I have some hacks in there to try to avoid it, for example I don't flip to an image and then immediately load the next one, I flip and then wait a few frames to do the load so that I spread out my higher CPU use tasks over time. (really I should have the load on another thread at low priority).