There are two confusing terms in MOSS 2007, site templates and site definitions. A site template is a .stp file which contains only the difference of changes from the original site definition. A user who wants to install a custom .stp file must have a site definition installed from which the .stp file was saved.
A site definition on the other hand is a complete definition with a directory structure containing .aspx files and a Onet.xml file.
For more on creating site definitions see Madhur Ahuja's post