Something else must be going on -- I just checked this in my game and it works perfectly for me. In my game, it doesn't matter if the player actor is entirely inside the other actor. If my overworld player actor is anywhere inside my overworld water actor at all, my Boolean [In Water] = TRUE the entire time until the player actor exits the water completely, for example. My code is super-simple, too. It's nothing more than a simple collision event (in the player actor's logic) which reads:
If [Overworld Player Actor] hits an [Overworld Water Actor]
Set [In Water] = TRUE
Then [In Water] is set back to FALSE at the end of the 'updating' event, just as I've described above. (Again, see Liberado's method for a more versatile way of doing this).
Where are you testing for this collision? (Is it in the player actor's logic, the environmental actor's logic or is it a scene event?) Also, what are the physics settings for both of the actors in question?