Simple jQuery search on input element
I find $.ajax().promise().then(fn) to be a little more confusing when looking at the code than it would have been if you instead used $.ajax().complete(fn) (or success if that is what you meant).
I would throttle the ajax post so that it doesn't happen on every keyup
if you are using the latest syntax already for $.ajax, I think it makes sense to use the .on method instead of .bind
some of the $() calls can be cached at various levels


So far the resulting code looks something like this (completely untested):

(function($, window){
    $.fn.extend({
        enableSearch:function(opts,callback){
            var timeout;
            var $t = this;
            return $t               
                .on({
                    focus: function(){
                        $(this.form.elements).val(''); // clears all search inputs
                        $t.trigger('keyup'); // triggers the search on an empty input element
                    }, // END focus bind
                    keyup: function(){
                        var t = this;
                        if (timeout) { window.clearTimeout(timeout); }
                        timeout = window.setTimeout(function() {
                            var searchData = $.extend({}, {
                                source:t.form.id,
                                column:$t.attr('id'),
                                value:$t.val()
                            }, opts);

                            $.ajax({
                                url:opts.URL,
                                type:'post',
                                data:searchData,
                                dataType:'json'
                            }).complete(function(returndata){
                                callback(returndata);
                            }); // END ajax call
                        }, $.fn.enableSearch.throttle); //END setTimeout
                    } //END keyup
                }); //END on
        } //END fn enableSearch
    });
    $.fn.enableSearch.throttle = 150; //$.ajax will not happen until 150 ms delay happens between keystrokes
}(jQuery, window));


This code is still very specific to your particular case and isn't very reusable elsewhere. The only reasons I would even be making it into a plugin are testability and reuse. I suppose you may be able to reuse this on your application so that isn't much of a deal, but I feel like it requires too much knowledge of your specific implementation to be testable.