When an SMS has not reached the recipient, you can check the status code of the SMS (See When you send SMS they get different statuses, what do these mean?) which gives you an explanation of what happened to your SMS. An SMS that has not arrived may be due to errors in the mobile number, the recipient's phone not being available or the system failing to send out your SMS.

If the error was due to the recipient's mobile being switched off longer than its operator is trying to send SMS, we will not receive a final status until this time has expired. 

This means that, in the worst case, you may have to wait for 72 hours before you are informed that a message has not been delivered if, for example, a telephone is switched off.