iMessage is a clever messaging system built into your iDevice. You can use it on Mac OS X, on the iPhone, iPad or iPod. It sends messages via the internet and Apple's servers directly from one iDevice to another.
In order to use iMessage, you need to activate it on your device by logging in with your Apple ID. On the iPhone, you have the possibility to send messages via standard SMS or via iMessage. The iOS is clever and always tries to send your message via iMessage if it can (if the other person is also using iMessage). If it can't send the message via iMessage (maybe your internet connection is not working), it will resort to sending it via SMS instead (that's a configurable option). It's simple and easy and it works. In most situations that is.
This does have a certain limitation which might not be immediately obvious. What if the person you are sending the message to does use iMessage but temporarily does not have internet access on their phone. The message will be sent as an iMessage and will be waiting to be picked up by the receiving party. However, they are unable to receive it. The result is - they don't get your message.
So, assuming that you realise this and the reason why (your friend's lack of internet connectivity on their phone), probably the best thing to do is to turn off iMessage, right? That way the message will be sent as an SMS instead. But what about everyone else that you send iMessages to? You don't want to be turning on and off iMessage every few minutes, so here's a little trick to help you out:
Without having to switch off iMessage, simply create a new message to your friend and send it. It will send as an iMessage, as expected. However it will not show as delivered, because your friend hasn't received it. Now, double tap the message and you will see a context menu appears. In there, you will find the option to Send As Text Message. This will immediately send the message as an SMS instead. The beauty is, all your other iMessage contacts will still receive your iMessages, which is what you want!
For those of you that may not be familiar with iMessage, when it is enabled you will see a different colour scheme used in the Messages app. Messages with a green bubble have been sent as SMS messages (which cost you money). Messages that have a blue bubble have been sent as iMessage messages via the internet. This helps you to easily determine at a glance which messages went as an SMS and which as an iMessage.