three thoughts:
1) tcl/tk would be a good combo to make a combined text or graphical installet - and since we all have to be tcl experts anyway it makes sense to use what we know
2) i like the way fink works (fink is a MacOS X package manager similar to bsd ports)
on OSX I, for instance, type "fink install postgres" - fink makes sure all the dependancies exist, downloads the source, downloads os X specific patches from it's own server, does the magic and compiles/installs the whole shebang.
3) you need to decide if you are going to use the native platform package manager or not. if so, the way to check dependancies is obvious, albeit different on every platform. you don't have to be locked in to the default packages since you could roll your own, or you could make, eg. an postgres-openfts package that relies on the standard package.
I personally think that it would be best to ignore the package manager since noone will be willing to maintain the up to date packages for every distro.
Instead I would use an autoconf style script to check for the required libraries/versions etc. as a bonus this would give you the paths to everything so you don't need to hardcode specific paths for specific OSs.