Well, like Lars said, your requirements are contradictory.
Assume user "abc" posts a message. Then he unregisters. Then another user signs up with the name "abc". Then you HAVE to delete the old "abc"'s messages so that it doesn't seem like the new "abc" has posted those old messages.
My suggestion to you is: keep the "registered" field as lars said. When a person unregisters, set this field to NO and set the username to something like "abc (user till 07/17/02)" to indicate that "abc" was the old user until the date he/she unregistred.
So when a new person registers with the name "abc", they won't be associated with the old abc by the forum users nor the database tables.
-sridhar