How to prevent access to Views-only content?
In D6, I set the path alias for these content types to be


no-view/[nid]


and then use

function MYMODULE_init ()  
{  
    $path = drupal_get_path_alias(request_uri());  

    if (strpos($path, "no-view/") !== FALSE) {  
        drupal_not_found();  
        exit;  
    }  
}

I think this will work as-is in D7, but I haven't tried it.