Why isn't code for $op == 'presave' being executed in hook_nodeapi?
Regarding your problem, you're editing the node right ? Because presave acts during saving.

On a site I use this module which is quite handy, maybe it can help you: Publish Content