It was my understanding (and this is just from what I have been told) that all that the imap_createmailbox() function does is create new email "folders" (or files to store email in ), but it does not create a new user account. That is you cant use this funtion to give joe@bloggs.com an email address there unless joe@bloggs.com already has an account on the machine. You could however give joe a new "box" to put his mail in like, joe.trash or something. Now thats not to say you couldnt "jerry rig" something to where your mail server would know to put mail for joe@bloggs.com to some file created by imap_createmailbox(), under some real users account. But (at least from what my understanding of the function) just because you create a new mailbox does not mean that when mail comes for that user it will know where to go. That you would have to setup yourself (ex. procmail under real users account puts mail in for the user).
But I could just be wrong 🙂 .