What we find works is to hold the coconut in the palm (pun only slighlty intended) of your hand with the midline length wise with your palm. Then with the back (reverse!) side of a meat cleaver (the heavier the better) strike the nut all the way around the midline. This will crack the nut into two almost equal halves. Again, use the back, blunt side of the meat cleaver. Hold it over a bowl if you want to collect the milk or the sink if you don't. You can then readily scrape out the meat...
Last time I opened a coconut I used a hammer and I had to go pretty hard out!! I was a bit worried that the neighbours might think I was going mental. Bits of coconut were all over my kitchen too. Quite a good work out though.