If your object is too close to what's behind it, the refraction will be amplified too much, like a magnifier. I assume that because it's a button, rounded?! Also, is your button's normal facing the right way, outwards?
It's a flat sphere, so it shouldn't refract too much (right). Since the article I linked to didn't use a shader, I made one up with his formulas. But it didn't give me the results I wanted - in fact moving it the button didn't even change at all and it just showed the same color no matter where it was. The normals are fine, I'm using a specular shader with it right now.
It's not common, but I'm putting youtube video link here - [media][http://www.youtube.com/watch?v=57zr1vfUK7Q[/media]](http://www.youtube.com/watch?v=57zr1vfUK7Q[/media]) - (I appologize for not marking it as link, but I just cant open dialog for adding hyperlink, though I think the bug is on my side in not updated opera).
Basically you render scene behind your menu to texture - distort coordinates (with some normal map to look good) and map them projectively from camera on GUI. You can also add reflection this way, etc.
Note that it really needs fine-tuning to look good - but it's worth it.
Actually I saw that video, which is where I got the idea.
I had a heck of a time finding any documentation, but eventually I found that article that uses the same formula, and I'm assuming that's where he got it from.