Over the years I have seen many approaches to this:
- Packaging a detached database file
- Packaging a backup, which is restored at installation time
- Creating the database from scratch using scripts
In my opinion, the 3rd option, creating a new database from scratch, building the data structure from scripts and populating any static data with a script is the best approach. Its repeatable, and should always work.
This question could also apply to other dbms.