I've had this issue for sometime, I finally gave up and switched to Courier-Imap but I'm finding I hate data storage / structure so I decided to give dovecot another go but am still running into the same issue.
I had this working once upon a time and can not for the life of me figure it out.
Here's some basic info.
Dist: Gentoo 2005.1 Emerge Info: net-mail/dovecot-1.0_beta8 USE="ipv6 pam ssl -debug -kerberos -ldap -mbox -mysql* -pop3d -postgres -vpopmail"
Permissions for /home: drwxr-x--x Owner for /home: root Permissions for /home/*: drwxr-xr-x Owner for /home/*: username:username
dovecot: May 18 23:40:04 Info: auth(default): client in: AUTH 1
PLAIN service=IMAP secured lip=xxx.xxx.xxx.xxx rip=xxx.xxx.xxx.xxx
dovecot: May 18 23:40:04 Info: auth(default): client out: CONT 1
dovecot: May 18 23:40:04 Info: auth(default): client in: CONT<hidden>
dovecot: May 18 23:40:04 Info: auth(default): client out: OK 1
user=xxxx
dovecot: May 18 23:40:04 Fatal: chdir(/home/xxxxx) failed with uid 502:
Permission denied
dovecot: May 18 23:40:04 Info: auth(default): master in: REQUEST
2 4464 1
dovecot: May 18 23:40:04 Info: auth(default): master out: USER 2
xxxx system_user=xxxx uid=502 gid=506 home=/home/xxxx
ovecot: May 18 23:40:04 Info: imap-login: Login: user=<xxxx>,
method=plain, rip=xxx.xxx.xxx.xxx, lip=xxx.xxx.xxx.xxx, TLS
dovecot: May 18 23:40:04 Error: child 4488 (imap) returned error 89
Only real resolution I can find refers to SELinux which I do not have installed.
I can provide my dovecot.conf if needed.