How can I make make-compat place the new opera on the sd card?
correct me if I'm wrong, but I think your problem is this: you installed oz-compat to root, and opera to sd. The problem is that makecompat (if I understand it right) moves a copy of the binary to the QtPalmtop.compat directory, which is wherever you installed the oz-compat package, and then links it back to <where you installed the package>/opt/QtPalmtop/bin. so, it's taking the opera binary (don't know how large it is, but it's quite large) and trying to move it from the sd card (lots of room) to root (very, very little room).
One solution is to uninstall oz-compat from root and re-install it on the sd card. I run a number of programs quite happily using oz-compat on sd. Another solution might be to move opera back to the sd card (/mnt/card/opt/QtPalmtop/bin, I believe) and create a link to it in /opt/QtPalmtop.compat/bin. I don't know for sure if this second method will work or not. . . if your sd card is not in and out of the Z all the time, I'd recommend the first way.
FWIW, here's what I did to make opera (7.30, available in the Downloads area) work perfectly:
1) Install oz-compat to sd
ipkg install -d sd oz-compat.ipk
ipkg-link add oz-compat
2) Install opera to sd
ipkg install -d sd opera.ipk
ipkg-link add opera
3) Create a link that opera needs to see its icons
ln -s /opt/QtPalmtop/opera /usr/share/opera/
4) Make opera use oz-compat
makecompat /mnt/card/opt/QtPalmtop/bin/opera
5) Launch and enjoy. . .