The wrapper containing the 'field-collection-container' class is added in field_collection_field_formatter_view() and because of this it seems that the usual theme functions (e.g theme_field, templatee_preprocess_field and template_process_field) are not able to alter the #prefix.
I've found that it is possible to alter the #prefix by altering the field collection field at the point it is attached the the parent entity by implementing hook_field_attach_view_alter() in our theme (in template.php):
/**
* Implements hook_field_attach_view_alter()
*/
function MYTHEME_field_attach_view_alter(&$output, $context) {
// First check we're dealing with a field collection field.
if(!empty($output['field_link_collection'])) {
// Now check for our specific field collection field.
if ($output['field_link_collection']['#field_name'] === 'field_link_collection' ) {
// Alter the prefix.
$output['field_link_collection']['#prefix'] = '<div class="field-collection-container clearfix MYCLASS">';
}
}
}
Make sure you replace 'field_link_collection' with the machine name of your field collection field.
Field collections are entities themselves (containing fields) as well being fields attached to other entities which is incredibly powerful but I've found to be confusing when trying to alter specific things.
I think that in this case accessing theme_preprocess_field doesn't change anything as it's the wrong point in the render chain and the field is instead being rendered through field_formatter_view (I'm not certain that this is the case though, it may be more complex).
It might also be useful to look at the Display Suite module as it gives you much more control over the markup Drupal generates.
If you wanted to make this easier in the future, submitting a patch to the field collection module to declare a template in field_collection_theme() would help, this issue looks related.
UPDATE
Another method is to change the field display settings (in 'manage display' of the node) of the field collection field from 'field collection items' to 'fields only'. There should still be a wrapper div which you can amend the classes of by doing something like:
function MYTHEME_preprocess_field(&$variables) {
if($element['#field_name'] == "FIELD_COLLECTION_NAME"){
$variables['classes_array'][] = 'MYCLASS';
}
}