Half-guards are said to be the most dynamic position in Brazilian Jiu Jitsu. For the basics, your body should be diagonal to your opponent and your legs are crossed at his leg placed furthest from you. In that position, use your arms to push the op's chest to get space. Use the freer leg (the upper leg in that position) to drive it close to the op's chest. In that way, he won't crash his entire weight on you. Your arm closest to the raised leg should reach under the leg (kick for more space) and grab the op's belt. At the same time sit up and plant face on op's chest. If op crashed his weight again, let him. Reach under his legs, roll and you'd be in a better semi-mount position.
Var. 2. If op makes an N foot plant, then grab his other leg, then grab that planted leg and the push down.
Var. 3 A var of #2 is similar to the X guard position. Your leg under the op's thigh should push it up while your free leg may push the ball of his knees forward. You will end up holding a semi-leg lock.
Oh, a cool video of passing the guard: http://www.youtube.com/watch#!v=MZHOYWZTqNY&feature=related
and another half guard defense: http://www.youtube.com/watch#!v=hTZv7IEwMeo&feature=related
I still could not get the half guard. But I was able to perform a fireman's carry. Stupid of me, after landing the op, I still dove for his legs instead of his exposed arm. I was able to do the roll escape to avoid the piggy back.