Several field templates or on node template?
I would never recommend Contemplate to someone who needs true control over the output.

Here is what I usually do:

I make php stuff and logic stuff on the node_preprocess, only sending to node.tpl variables ready to be echoed, or arrays to be foreach'ed and then printed, in the case of cck fields with multiple values.

And I never run functions of any type on node.tpl.php. If you need to run a function, run it on preprocess!

Using this approach my templates become faster, as they can take take a little more advantage of the internal template caching system, and also, my node.tpl.php gets REALLY easy for me and others to understand it.