I have the same problem and the provided "solution" to the problem is not really a solution.
It just explains what happens but it's not the whole story.
Here is why:
I have different friends with iphones. I have no data plan.
From some of the friends with iphone I always get a response, and from some only when I am in wifi range.
In both cases the imessage works (all blue) when I am in wifi range.
With some of the friends it switches automatically from imessage to SMS depending on availability of wifi.
With some it works only one way. I can always send but will receive only when I am in wifi range.
So my question is:
Since it is different with different iphones, the setting for it must be individual. Is there something in my phone I can change specifically for that contact?
Or do those friends have to change something in their settings so I can receive message from them when I am not it wifi range?