How to re-render a particular field in template_preprocess_node or template_preprocess_field? This is really really easy in Drupal 7: just use field_view_field or field_view_value. Choose the latter if you want to re-render a particular field value, or the former if you want to re-render the whole field (label and all values).

However, I couldn't figure out how to do this in Drupal 6. I resorted to implementing hook_nodeapi and changing the node content before it was rendered. This approach cannot be implemented from the theme, though, I'm looking for a theme solution.
In template_preprocess_node($vars), you can do:

$node=$vars['node'];


and then all the fields of the node are available to you, and a quick

drupal_set_message('&lt;pre&gt;' . print_r($node,true) . '&lt;/pre&gt;');


will show them to you.  So if you had a text field called field_description you can access it via:

$node-&gt;field_description[0]['value'];


and you can then modify to your heart's content, eg:

$node-&gt;field_description[0]['value']='What I really wanted to say was....';


and then at the end:

$vars['node']=$node;


sets it on its way.