Can you create a new block region using just a module?
hook_system_info_alter is your friend.

&lt;?php
/**
 * Implements hook_system_info_alter()
 * Adds a new "tray" region to the current theme
 */
function MODULE_system_info_alter(&amp;$info, $file){
  global $theme;    

  // If non-default theme configuration has been selected, set the custom theme.
  $custom_theme = isset ($theme) ? $theme : variable_get('theme_default', 'bartik');

  if ($file-&gt;name == $custom_theme){
    $info['regions'] = array_merge($info['regions'],  array('tray' =&gt; t('Tray')));
  } 
}