One option is to not have personal configs (/home/dsl/*) included in the package. I've seen a couple of applications that will choke if a config is not found (torsmo, for example), but most programs are coded well enough that they either create the appropriate files if they don't already exist or they use hard-coded default settings. I couldn't say if timidity and peerguard do this.

Creating a wrapper to check for existing configs is easy enough, and not really too dirty. As an example...

One thing I'm concerned about personally is that you said "overwrite files that are already there". Are you talking about files that are part of DSL? You should NEVER do this unless absolutely necessary (such as upgrading an existing application). I had a little argument about this a while ago with someone whose package overwrote personal configs, just so it would be "easier" to use. After a few changes in DSL development, the package ended up breaking several users' setups.If a package can potentially do this sort of damage, or simply cause unexpected changes to files that the user has put in the time to customize to suit his needs, then it's best to avoid making assumptions. Just tell the user how to configure your package if you cannot safely do it automatically.