Something which caused me a lot of troubles last week – an overbloated site definition. Don’t do this. As stated in the ten commandments for SharePoint development:
4. Keep your custom site definitions as minimal as possible. A long debate started after Joel's post on the topic - Do you really need a site definition . They are nothing more than a "skeleton" for attaching programmatic elements in the form of features and should be deployed as solution packages.
Trust me – follow this advice, it will cause less problems in the future.