CGI.escapeをするとhttp://のスラッシュの部分までエンコードされてしまって
IEが勝手にhttp://を付け足してhttp://http%3A%2F%2F ...と言う風になってしまいます。

一般的にURLエンコードする場合って言うのはどういう場面なんでしょうか?
はてなブックマークとかも日本語をエスケープしてるくらいでURLエンコードしてないように見えるのですが。。。
根本的なところが分かってないので使い場所を間違っている気がしてきました…。
今のところはhtmlescapeと同じように手当たり次第にやってます