When I have seen this, it's actually just a connection/client problem. Here is a brief explaination of HOW it can happen;
Scenario that can set up the "problem"
User
joe@foobar.com has 40 (or 400) messaes in their inbox, most messages are text email, very small, with no attachments, but message number 39 (or 389) is some cute little [worthless] email with 4 or 40 mb attached file.
What happens to "JOE"
Joe connects from someplace with a limited or slow internet connection, and starts downloading his emails. He happily watches the status zoom by - 1,2,3,4,23,25, all zoom by really fast. Suddenly at 39 (or at 389) the download seems to "HANG" - note it is really not hanging, but is now downloading a huge file, but he doesn't know it, he's just upset that his download "STOPPED".
What Joe does to TRIGGER THE PROBLEM;
In frustration, after 7 minutes of "nothing happening", he shuts down his pop client, and tries again. It quickly downloads the first 38 (or 388) messages, and hangs again...
If you happen to have an impatient user (or a stupid one), they can repeat this process 20 times over a few days, and their pop client now has 38 x 19 or 388x19 duplicate messages in their pop client.
This can also happen if there are many emails and an unstable internet connection.
Note: this is not a zimbra problem, but a handshaking problem between your pop server and your pop client. When the client requests "all new mail" the pop server starts to comply, when the connection fails, the pop client may not have confirmed receipt and marked the downloaded messages as having been received, so the pop server still thinks they are new....
To get over this issue, have your user log on through the web portal and delete emails with attached files (download them from there whatever) and you may find that your problem has "GONE AWAY"...
(we had a user who used to send "everyone" a 6mb ppt file every once in a while...(!))