Be aware that 08 and 09 (with or without explicit sign) are invalid number-strings in Tcl. Don's example of 000111 is a valid number-string in Tcl, but its value is most likely not what an end user might expect (try e.g. [expr {000111 + 1}]).

The main question is against what kind of error a developer expects that template::data::validate::integer protects against: should be the number an integer number in the mathematical sense, is it an integer that can be used for computations in Tcl, or is it an integer in the sense of the database backend. As long there is a single validation function, only the intersection of the three definitions would be safe.

According to the documentation http://www.openacs.org/api-doc/proc-view?proc=template%3a%3adata%3a%3avalidate%3a%3ainteger, leading zeros are not excluded, neither with or without sign.