Recently I have started a new thread on an issue related to Java Card Applets and iPhones (iPhone 4S STK bug ? - unfortunately that thread has been closed by EJP, not allowing me to share the knowledge with you. :(
Actually the root cause is clearly a bug on the iPhone's chipset, however, the terminal response was 0x20. According to GSM 11.14, it is worth to retry the message if the response is '2X'. And guess what, it works fine on the 2nd attempt.
I don't understand why that thread was closed as it become a very popular issue (in some countries we have more than 50% iPhones on the network) as it is important to implement a retry mechanism on the send message proactive command. Hope that hint will help others to deal with this issue.