Думаю нужно действовать иначе.
Сначала ищем фигурную скобку в тексте - $p1 = strpos($text, '{');
Затем закрывающую - $p2 = strpos($text, '}');
Получаем то, что между ними - $key = substr($text, $p1+1, $p2-$p1-1); //здесь может быть ошибка
Ищем аргументы - $args = explode(':::', $key);
Дальше - $modulid=$args[1];
Загружаем нужный файл - $file = include('mods/'.$args[0].'.php');
И заменяем в шаблоне - $text = str_ireplace('{'.$key.'}', $file, $text);
Но тут нужно быть внимательным. Может попасться фигурная скобка которая не является переменной шаблона, поэтому обычно используют двойные фигурные скобки. Всё что выше не факт, что правильно, но примерно суть ясна, надеюсь.