How to add field classes from within template_preprocess_node
Ok my somewhat dirty solution was to pass a classes array from template_preprocess_node to template_preprocess_field:

function template_preprocess_node(&amp;$vars){
  if(!isset($vars['content']['field_name']['classes_array'])){                                                                                   
    $vars['content']['field_name']['classes_array'] = array();                                                                                   
  }                                                                                                                                                          
  $vars['content']['field_name']['classes_array'][] = 'custom-class';
}

function template_preprocess_field(&amp;$vars){                                                                                                                    
  if(isset($vars['element']['classes_array'])){                                                                                                                    
    $vars['classes_array'] = array_merge($vars['classes_array'], $vars['element']['classes_array']);                                                               
  }                                                                                                                                                                
}


If there's a more 'official' way to do this, please feel free to enlighten me and I'll re-award the answer :)