Horde is a great webmail program. It's easy to use, and, for somebody who has a lot of time to learn its configuration options and its PHP code inside out, it can be altered for many uses. However, it's poorly documented, and if you have a problem you'll probably search and find a dozen mailing list threads with half-articulated solutions.
By default, Horde allows you to login with your user name, but ISPConfig, which was being used to manage a server I was working on recently, adds somewhat hard to remember prefixes to user names. That avoids collisions in a multisite environment. But who wants to remember a prefix (which includes an arbitrary number in it). I needed Horde to convert the e-mail address a client typed to a user name that my IMAP daemon would understand.
I chose to solve this problems using 'hooks.'