Cannoning zerg is almost pointless because of creep spreading and spine crawlers. Against protoss it can be effective because they have no siege units till collosus + thermal lance. But getting that cheese started with early stalkers makes it difficult. Tanks are relatively easy to get in a 1-1-1 opening and marauders can hold their own well against a rush. It's definitely a hassle, but you should have the economic advantage if you can break it.
Cannoning zerg is pretty effective. By which I mean throwing down two cannons at the bottom of their ramp to deny the fast expand (which almost every zerg tries to do, me included... I'm pretty bad at one-base play), and then transitioning into whatever (typically 4x warpgates). 2 cannons with 2-3 zealots is REALLY hard for a zerg to break, and he'll throw away a lot of units if he tries.
Creep takes a while to get to the ramp for the spine crawlers to burrow into, and the zealots give you vision to them if you need it.
Edit: You can see how effective it is here:
http://www.youtube.com/watch?v=-Vm3Zb7vZbo
Check counters by going Lair -> Nydus, but Check is also one of the top Korean players, and most zerg would probably just lose.