How do I programatically create and display a one-off view?
I figured it out myself in the end - by looking at how Views does it itself in views_block_view().  

function page_callback($my_entity) {
  //create view
  $view = new view();

   ... //Do all the views creation stuff e.g. code in export view

  $display_id = 'block_1';
  $view-&gt;new_display('block', 'Block', $display_id);

  if ($view-&gt;access($display_id)) {
    $output = $view-&gt;execute_display($display_id);
    views_add_block_contextual_links($output, $view, $display_id);
    $view-&gt;destroy();
    return $output;
  }
$view-&gt;destroy();
}


The above code renders a view that is created from scratch and never saved to a database.  If you wanted to do a page you could look at the code in views_page().