Why do you need complex IF statements in your template? samtregar's idea for HTML::Template was to separate the two. If you introduce complexity into your template you create a Meta-language where code and data are again mixed. And designers get confused :)
I believe its much better to leave complex stuff in Perl which is very good at handling it and output the appropriate data to the template from there.
I do make use of HTML::Template's simple IF statements (and I wish there was an elseif) but beyond them I don't think its appropriate to further extend a meta-language.