How do I summon mobs with block heads on Minecraft?
I do not think it is possible with cows (or any other non-armor-supporting mob). I do know it is possible with Skeletons and Zombies, however. The command is in the below format:
/summon Zombie ~ ~ ~ {Equipment:[{},{},{},{},{id:46}]}
The above command will spawn a Zombie with a TNT block for a head. I think water can be done, if you really want. Simply replace that 46 with something else.
Command Breakdown:
/summon <mobType> <x> <y> <z> {Equipment:[{id:<weaponID>},{id:<bootArmorID>},{id:<pantsArmorID>},{id:<shirtArmorID>},{id:<headArmorID}] <otherNBTTags>}
Note that blocks can only be head armor and not any other armor. You can however place other things into these slots for a chance of drop on death.
For a zombie wearing water and named "Underwater Mission Fail" (in bold red), run this command:
/summon Zombie ~ ~ ~ {Equipment:[{},{},{},{},{id:10}] Name:&4&lUnderwater_Mission_Fail}
In the 1.8 and above snapshots, you need to use the block name instead of the block ID. For example, spawning a Zombie wearing only TNT for a head will have this command instead of the above:
/summon Zombie ~ ~ ~ {Equipment:[{},{},{},{},{id:tnt}]}