If you want to lock the binary to a server, just do a check on $_ENV['SERVER']
You'll have to hard code the domain name and it's best to somehow munge it, perhaps by using pack() and store in the script as a binary string which could be unpacked and interpretted. Why munge? To assist in hampering people from figuring out which byte-range to alter to change the 'locked' server name.
This schema would help to insure that the script was operating solely on www.this_site.com and not www.that_site.com
But as all things, is not fool-proof.
Anyway, why bother?
I have an OO Architecture that I spent several months developing, and was considering doing what you are doing.
And in fact, my situation is very similar,
I had been offering the use of my software from my server as basicly an ASP hosting arraingement for a couple sites and had a new client step up and wanted it to be hosted from their corporate servers.
The subject of a zend-encoded binary was brought up and was not taken favorably by said client. Not that I couldn't have delivered it in any manner I chose as the contract had already been signed. But rather, I decided that the interest of my client over rode as the client is a big name, and therefor a boon to the future of my work and ultimately, in the success of my software. At a later date, I do plan on open sourcing the entire codebase under the GPL as I feel it's a codebase that would be invaluable to the development community, so a binary version would be moot at that point anyway.
And besides, unless you have something patentable, a copyright is all you really need. So look at it this way, you own the code, you wrote the code and so therefor you know it better than anyone else.
And since you wrote it, wouldn't it make sense for those needing development come to you? You don't even need to GPL it, just keep it under your copyright, and all will be good... plus you wont be out $2,000.