Apparently Internet Explorer (up to version 8 at least) ignores overflow:visible when applying filter (e.g. for opacity), causing anything outside the filtered
It seems that the workaround to this is simple: Use -ms-filter rather than filter:
-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=50)';