Not quite following your question, but...
- Check to see if you are checking for the variable inside of a TMPL_LOOP. By default, variables are localized, and variables from an outer scope will not be included in your current scope (see global_vars)
- TMPL_IF does not check for existance, it checks for perl's definition of true.
--MidLifeXis