Your code looks correct..
I would guess that your userfile has been damaged at some point.
But just to make sure, which version of eggdrop and tcl are you using?
Well, your script is not to blame (atleast not directly, in any way).
Even if you were to try and add an already existant user, adduser would know to handle it properly.
You say all your eggies have the same problem.. are they linked with userfile sharing?