SharePoint has no ability to assign meta-data to a Site Collectin or site directly. There are a few approaches to simulating it for the purposes of search and navigation:
1 - Use the Site Directory. although the 2007 Site Directory was deprecated, it still exists on SharePoint 2010 (for upgrade compatability) and you can turn it on and use it the same as 2007. Basically, it uses a single site collection with a list to to contain metadata and a link to every site collection. You can customize this to capture additional metadata.
Here is a link on how to activate it:
http://msforge.net/blogs/mcpblog/archive/2009/11/24/activate-site-directory-in-sharepoint-server-2010.aspx
2 - Use Meta tags on the default page for each site that can be picked up by search. Maxine Bombardier has a good blog post that presents this innovative approach.
Link
3 - Use the Site Directory on Codeplex. Some MCS guys put this together as a replacement for the SharePoint 2007 Site Directory. Much the same architecture, but some additional capabilities, etc.
http://spsitedirectory2010.codeplex.com/
4 - Publish a custom content type through the meta-data hub, and then use it on a hidden list in each Site Collection or Site. The hidden list will contain a single row representing the metadata for the site. You could deploy a feature with a custom action that adds a link to Site Settings that links the edit page for the hidden list or implement a custom _layouts page to edit the values, etc. Search will pickup the items just like any other list, and since there is a custom content type, it is easy to use the Search API to filter for just sites.
I prefer #4 myself since you don't have to monkey with managing a Site Directory site collection and timer jobs to keep it updated. Metadata is stored directory on the site itself so it is easier to keep it updated, and it is search friendly.