I had the same problem with the opacity effect flickering. My code:
new Effect.Opacity(container, { from: 1, to: 0, duration: 0.5 });
container.innerHTML = html;
new Effect.Opacity(container, { from: 0, to: 1, duration: 1 });
As you can see, I'm fading the div out, changing the content and then fading it back in - however it would flicker during the opacity change. After reading around and doing some further debugging (this flicker would happen in IE6, IE7, Safari and FF3) I realised the effects were not running in the sequence.
I eventually solved it doing the following...
container.setStyle({opacity: 0});
container.innerHTML = html;
new Effect.Opacity(container, { from: 0, to: 1, duration: 1 });
Removing the first effect, which seemed to be running during the second, stopped the flickering.