This is a new feature of yahoo mail. It is using what is called Grey Listing to fight spam. For more details, you can read:
What happens is that whenever a new message is sent to yahoo, it replies with “try again later” message. e.g. here is a test smtp connection to one of the yahoo’s mx:
# telnet 126.96.36.199 25
Connected to 188.8.131.52.
Escape character is ‘^]’.
421 Message from (a.b.c.d) temporarily deferred – 4.16.50. Please refer to http://help.yahoo.com/help/us/mail/defer/defer-06.html
Connection closed by foreign host.
Now as you can see, yahoo did not even give us (the ip of a.b.c.d) a chance to start the smtp session. What it will do is wait for us to try again later. Our mail servers (or yours on your vps/dedicated server) will try again later and if yahoo likes the delay long enough, it will let the server communicate further and deliver the email.
To avoid such delays and problems with yahoo mail, you are encouraged NOT TO FORWARD emails to yahoo or any other ISP. Please refer to this KB as well why we are saying that: