This has been added in Views 3 and can be found in 'No results behavior' where you can add 'View area' which would be inserted on empty results.
Here is example how to do it programatically by using hook_views_pre_view
:
/**
* Implements hook_views_pre_view().
*/
function MYMODULE_views_pre_view(&$view, &$display_id, &$args) {
if ($view->name == 'my_view') {
// Unset: Global: Text area
$view->display_handler->set_option('empty', NULL);
/* Programatically update the 'No results behavior' by inserting another view. */
// Example 1
$options = array(
'id' => 'view',
'table' => 'views',
'field' => 'view',
'empty' => TRUE,
'view_to_insert' => 'new_view:page',
);
$view->display_handler->set_option('empty', array('view' => $options));
// Example 2
$view->set_item_option($display_id, 'empty', 'view', 'id', 'view');
$view->set_item_option($display_id, 'empty', 'view', 'table', 'views');
$view->set_item_option($display_id, 'empty', 'view', 'field', 'view');
$view->set_item_option($display_id, 'empty', 'view', 'empty', TRUE);
$view->set_item_option($display_id, 'empty', 'view', 'view_to_insert', 'new_view:page');
}
}