It seems to me, you're trying to run PostgresSQL under your current user-account.
I don't know the fink-properties for PostgreSQL, but the associated daemons are supposed to run under a dedicated user-account (lets say postgres for example).
First identify the data-directory, in which PostgresSQL stores it's data and configuration files exist. Your error messages seems to say this may be "/Library/PostgreSQL/8.4/data".
This directory should belong already to the postgres-user and have rwx-privileges for him.
I guess Fink has already created it, so check out the install-logs.
Look inside this directory (you may need to su/sudo because you may not have sufficient privileges to do so with your console user). If there are some files, eg. postgresql.conf, a bunch of pg_* and some other files, all belonging to postgres, the data directory seems to be allright, otherwise invoke the following (replace the binary-path, postgres-user and the data path with your system-values, see man initdb for more options):
sudo -u postgres /usr/local/pgsql/bin/initdb -D /Library/PostgreSQL/8.4/data
It's important to sudo as the postgres user here, because the user-account the postgres deamons runs as will have to have the sufficients access-rights.
Also, you will have to start the deamon with the the sudo (this should later be handled by a lauchctl-entry, or something similar), so:
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /Library/PostgreSQL/8.4/data
You can always re-create the data-directory, but be sure to make a backup and do not overwrite it when postgres is still running.