I am working with Visual Studio 2008 with the WSPBuilder add-in, and WSS 3.0. When I create a Web Part feature and deploy it to my SharePoint site, it is available to every site collection in the web application. Is there a way to only deploy it to a single site collection?
This isn't possible. If you only want to activate in one site collection, set it as hidden, and activate via stsadm.
One of a former project I worked on, I use a custom site template to hide features to other site collections.
The idea is to follow these steps :
When the user create an instance of your site, your features will be activated automatically. Other site collections won't show at all these features (but the feature will still be activable from command line).
If you look at Microsoft Publishing site template, you will see that a lot of features are hidden, but activated via the site definition.
Some drawbacks however, with this method :