This bug manifested when testing in a 4.7 environment. Unlike the 4.6 build, the 4.7 build does not provide a default value for the Available Countries setting (/civicrm/admin/setting/localization). CiviVolunteer was expecting at least one country in the list. As a result of not getting that, both the New Project and the Volunteer Opportunity Search pages died; Angular would fail silently. In the browser this looks like the site chrome with no content.
Running VolunteerUtil.getcountries from the API explorer shows: