Для версии char[][]
вы можете указать
template <int N, int M>
void mySort (char (&container) [N][M]); // version 1
, и будет создан правильный шаблон-функции и вызван.
Для другой функции-шаблона
template<typename Container>
void mySort(Container& container) // version 2
вы можете использовать их вот так
std::string s;
mySort(s); // calls version 1
char c[10][10] ;
mySort(c); // calls version 2
Обратите внимание, что здесь не происходит никакой специализации. Это полностью отдельные шаблоны функций.