A soft delete, such as a strike-through in the user name, is the best option for preserving the overall content of the site (like contests and discussions). Deleting some comments out of a thread can make the remaining comments incomprehensible, after all. This option works if it's ok to preserve the fact that such-and-such user once existed in your system.
If it is important for a user to be able to delete the fact that he was there -- i.e., leaving the user name isn't acceptable -- then I recommend a rename that preserves uniqueness. Just renaming everybody "deleted user" causes problems; imagine the case where two or thereethree deleted users participate in the same comment thread. Who's who? Instead, I suggest using number suffixes, so you can tell that deleted-414 is arguing with deleted-761 and that deleted-521 and deleted-71 both entered a contest.