I think Erik's comment about using external scripts is right on target. I have had more than my share of frustration with Zope as well, Ian. And I really do get your emotional reaction. I find coding python one of the most enjoyable things I can do with a computer and Zope has often been very frustrating in contrast. And, like you, my major use of zope has been for a work project.
But lately I have traced my dislike of zope to two main factors. Really, really muddled documentation (which has gotten somewhat better since 2.6) and the fact that I was using the wrong parts (muddled documentation, anyone?) of it in the wrong way. Switching from DTML to ZPT, understanding and extensively using external scripts and developing as products instead of internally has gone a long way toward easing my pain. I won't say that I find developing in zope a dream, but honestly I find developing with any extensive framework always to have a good share of annoyances and gotchas as I have to wrap my head around someone else's idea of the best way to do something. That might just be me being a little slow to pick things up unless I coded them, tho.