Howto Create Sharepoint 2010 Sites: Comparison between different methods

Site Definitions vs Site Templates and Site Provisioning Providers
“creating templated SharePoint Sites and see what works and doesn’t work for different scenarios.” Templates and SharePoint Sites – 3 of 4, by Raymond Mitchell
Templates and SharePoint Sites – 4 of 4, by Raymond Mitchell
The lines below were quoted form the link above.
The Keystone
The piece that makes it all possible: SPWebProvisioningProvider. A Provisioning Provider can be specified in a Site Definition’s webtemp*.xml file. In the configuration element, you can specify the ProvisionAssembly, ProvisionClass, and ProvisionData attributes.
Hold it right there, does that mean we’re creating a Site Definition? I thought they were the root of all evil? Not so fast, my friend:
If you implement your own class that inherits from SPWebProvisioningProvider, you can use it to call the ApplyWebTemplate method of a Web which allows you to manually provision one of the out of the box Site Definitions! That means you get your unique Site Template Name but when the site is created it THINKS it is an out of the box Site Definition! “