If you are ever in the Captcha business, definitely check out Captcha::reCAPTCHA. It was extremely straightforward.
I very much enjoy writing Oddmuse modules. Oddmuse itself is this 4000-line beastie in a single file. Extensions, at least the interesting ones, build on the core by replacing internal functions with custom versions. So to add this captcha technology, for example, I overwrite the doEdit function with one of my own, calling the old doEdit function and then manipulating the generated HTML.
It's your standard sick and wonderful form of Aspect-Oriented aka Self-Modifying programming that makes me happy.
You can see the result over on the Continuity Wiki, just edit a page. Feel free to add some useful content while you're at it