First off, are you doing any sort of IP masquerading? This means do you have a windows box behind a linux box trying to connect?
If not then your obviously NOT running identd. In your post I see that in.identd is running on 1306, I'd assume this is a typo, the identd daemon SHOULD be running on port 113.
Look at /etc/services to verify that you have a line like:
auth 113/tcp
or something similar. If this is so, move on to /etc/inetd.conf to make sure you have:
auth stream tcp wait nobody /path/to/in.identd in.identd -P /dev/null
or something similar. If you don't, then your NOT running identd and the queries from IRC are leaving unanswered(and therefore your getting the pesky ~ in your username that's preventing you from connecting).
Look on
http://freshmeat.net for a program called oidentd and try and run/install that
J