How do I replace a string when using hook_node_view()?
According to the doc, the first parameter should be $node, rather than &amp;$node. 
The replacement code should look something like this:
$node-&gt;content['body'][0]['#markup'] = str_replace($old, $new, $subject); so you missed [0] in your code, when in doubt, do a dsm($node) and check the variable you want. 
Complete code:

function test_node_view($node, $view_mode, $langcode){
    if (drupal_is_front_page()) { // check if necessary
    $string = "new";
    $node-&gt;content['body'][0]['#markup'] = str_replace('old', $string, $node-&gt;content['body'][0]['#markup']);
    }
    //dsm($node);
}