Можно воспользоваться Zend Guard, ionCube или другим ПО для обфускации кода, в код встроить проверку на текущее время, которое для невозможности перевода на сервере брать из запроса клиента, соответсвенно ставить лимит времени на несколько дней, давать такой вариант до полной оплаты, после оплаты передавать исходники. Пишется все это достаточно просто и быстро, да и указанные выше варианты никто не отменял. Важно лишь чтобы стоимость снятия защиты была меньше стоимости проекта =)