Quite often I define content types with associated event receivers, etc and want to bind them to particular list instances when a site is provisioned. Previously I would create the content types, go through the steps to create a list, associate the content type, modify the view, etc and then use the Visual Studio Tools for SharePoint "Solution Generator" to pull down the list to include in my package for deployment to SharePoint.
I found an easier way to do this using the ContentTypeBinding elements.
Add the following to the elements.xml file for your feature:
<ListInstance FeatureId="00BFEA71-DE22-43B2-A848-C05709900100" TemplateType="100" Title="ListName" Url="Lists/ListName" OnQuickLaunch="TRUE" QuickLaunchUrl="Lists/ListName/Forms/Allitems.aspx" />
<ContentTypeBinding ContentTypeId="0x0100YOURCONTENTTYPEIDGOESHERE" ListUrl="Lists/ListName"/>
THis will crate an instance of the CustomList type and then bind the content type to the list.
It makes it easy to test your recievers, etc without going through all of those additional steps.
There are some drawbacks to this approach. It doesn't remove the default "New > Item" from the "New" menu which may be an issue. Also, the default "AllItems" view of the list will not include your fields from your custom content type.
I am considering adding code to a feature receiver that will adjust these items after the list is provisioned... not enough hours in the day :-(
Hope you find this tip useful !
Happy Sharepointing !