If you're really that concerned, make it a web app or something and run it on a box you own. If you think your competitors will go to any length to reverse engineer your work, then don't give it out the EXE at all.
I don't think many customers would be keen on this, though. Eventually if you make it too cumbersome to even use they'll go elsewhere regardless.
A web service vs a web app, but yes - remote services are a good way to keep the 'underwater' part of the iceberg away from your users..
Then you just have to worry about protecting innovation on your client