一応最終回。
Modifierに使える関数は、PHPのビルトイン関数だけではありません。function_exists()で確認しているだけなので、ユーザ定義関数であってももちろん利用できます。
ただし、Smartyがコンパイルを行う時と、実際にレンダリングをする時の両方について、その関数が定義されている必要がある点に注意が必要です。
後者で問題になるようなら、単なる設計ミスですが、前者が意外と困難です。tplsadminなどでテンプレートを編集する場合、該当モジュールが読み込まれているわけではないので、モジュールが定義した関数を利用する、というのはかなり難しいのです。(必要に応じて、altsysやtplsadminが読み込んであげる、なんてのも手なんでしょうが)
mainfile.php あたりに1行追加して読み込む、なんて手もありますが、それくらいなら、素直にプラグインを作ってしまった方が良いでしょう。
逆に、include/functions.php 内に定義された関数であれば、コンパイル時にも読み込まれていることが確実であるため、安心して利用できます。マルチバイト言語圏でもっとも有効なのは、xoops_substr()でしょうか。
<{$news.title|xoops_substr:"0":"20"}>