I have been playing around with some environmental elements of the shell and began mocking up completions for myself by going into a special directory that had sub-directories named what I needed for my TAB completion. It turns out that with bash it is quite a bit easier and cooler than this.
http://www.debian-administration.org/article/An_introduction_to_bash_completion_part_1