I know this is an older topic, but I have found the following method to work just fine for most use cases.
These simple steps will take you through creating your own module with the new view mode. It's fairly simple. I would love to provide attribution, but I can't remember where I found the basis for this. It does follow the same logic as werqious's answer though.
File 1 : my_module_view_modes.module
<?php
//Add more view modes for content type displays, in addition to default and teaser.
function almagest_view_modes_entity_info_alter(&$entity_info) {
//NB: media_ prefix required.
//You can repeat the following section for any view modes you'd like to create.
// First View Mode
// tag 1 references the entity type, ex. node or file
// tag 3 provides a machine name for your mode
$entity_info['node']['view modes']['my_view_mode'] = array(
'label' => t('My View Mode'), // This is what you'll see in your "Manage Display" tab.
'custom settings' => TRUE,
);
// Another View Mode
$entity_info['file']['view modes']['my_other_view_mode'] = array(
'label' => t('Another View Mode'),
'custom settings' => TRUE,
);
}
File 2 : my_module_view_modes.info
name = My Module View Modes
description = Add additional "View Modes" for entities in this module. Helpful for additional displays in views or node rendering.
package = My Modules
version = 7.x - 0.1
core = 7.x
Save these two files in your my_module_view_mode folder in your modules folder and enable.
Clear your cache and now you'll see the new view modes in their respective entities.