Es bastante sencillo, nose como funcionara esto en otro motor de bases de datos, pero los indices en visual fox sirven para ordenar los datos y visualizarlos en forma ordena, yo cree un cursor introduciendo los datos que mencionas para poder darte un ejemplo mas concreto.
aca el codigo que use para introducir datos
CREATE CURSOR cursor1(codigo_municipio c(5),municipio c(25),codigo_localidad c(5),localidad c(25))
INSERT INTO cursor1 values("001","merida","001","conkal")
INSERT INTO cursor1 values("001","merida","002","kanasin")
INSERT INTO cursor1 values("002 ","progreso","001","san ignacio")
INSERT INTO cursor1 values("002","progreso","002","san juan")
INSERT INTO cursor1 values("002","progreso","003","paraiso")
INSERT INTO cursor1 values("001","merida","003","halacho")
los datos quedan de esta forma
http://i48.tinypic.com/hu3c5y.png
si haces un Query, puedes usar Order By para que te quede de forma ordenada
select codigo_municipio,municipio,codigo_localidad,locali dad;
from cursor1;
order by codigo_municipio,codigo_localidad
y te quedaran los datos ordenados
ahora bien, si quieres darle un orden a la tabla (fisicamente) entonces debes crear un indice (esto lo haras una sola vez, ya que el indice queda creado en forma fisica, no asi como el orden que crea Orden By en la consulta y se pìerde cuando cierras el cursor)
INDEX ON codigo_municipio + codigo_localidad TAG codigos
aca el indice esta creado fisicamente y para ordenar usas
SET ORDER TO codigos
y listo