Non ne vedo il motivo in quanto le parole con lettere diacritiche iniziali vanno assieme a quelle normali, ma se vuoi fare una tempesta di cervelli... 
Se le vuoi ordinare e poterle raggiungere in ordine numerico puoi metterle in un' array, non credo ci sia un modo più "facile".
Codice PHP:
$alfabeto_diacritico = [
1 => "a",
2 => "A",
3 => "ă",
.....
]
Ora che hai dato un ordine ad ogni lettera le passi tutte e le ordini secondo la prima lettera
Codice PHP:
while(passa tutte le parole){
$first_letter = $word[$i]{0};
$letter_code = array_search($first_letter, $alfabeto_diacritico); //la key corrispondente alla lettera
$words[$letter_code][] = $word[$i] //metti la parola assieme a quelle che iniziano con la sua stessa lettera
$i++;
}
Intanto le abbiamo ordinate per la prima lettera, questo vuol dire che abbiamo già diviso in "capitoli" il nostro vocabolario.
A questo punto potremmo ciclare ogni capitolo ed ordinarle con substr avanzando di lettera in lettera e dando alla parola un valore numerico ordinabile come in un alfabeto.
Ciao,
endle
P.S:
Un'idea che mi era venuta era tenere in una tabella l'alfabeto con la posizione, fare una query e poi controllare lettera per lettera ogni parola da ordinare, ma forse è un po' oneroso per il server.
Volevi davvero far elaborare un dizionario intero ad ogni richiesta della pagina? Stai tentando forse di dar fuoco ad una web farm?