Ubuntu Japanese Teamのリポジトリでは、unzipにパッチを当てて、ZIPアーカイブ内のファイル名がSHIFT_JISになっていても文字化けしないようにしています。
ただ、ベースのバージョンがunzip 5.58という太古の昔の産物ですし、半年ごとにいちいちリリースしないといけませんし、セキュリティホールが出ても修正できません。
ざっと調べた感じ、RHEL/CentOS 5がこのバージョンを使っているっぽいのですが、アップデートされていないようなので、あまり気にしなくてもいいかもしれませんけど。
というわけでなんとかせにゃいかんなぁと、先日のunzipのセキュリティ修正の時から考えていたのですが、Ubuntu Kylinでは環境変数を指定して対応していることをたまたま知りました。
具体的には、/etc/profile.d/Z99-zip-cp932.shに
if [ "$LANGUAGE" = "ja" ]; then
export UNZIP="-O cp932"
export ZIPINFO="-O cp932"
fi
とかなんとか書くと、文字化けしなくなるようです。

こんな感じで。
-Oオプションは知ってましたけど、オプションを環境変数で指定できるのは知りませんでした。
このとおり、file-rollerでも文字化けしてません。
manには記述はなかったのですが、-OオプションはDOS, Windows, OS/2(!) に有効で、Unix系OSの場合は-Iらしく、副作用もありません。
とはいえ、この件に関しては詳しくないので、他に気をつけるべきことがあるかもしれませんが。