Básicamente tienes que tener en cuenta lo siguiente
1) Las tablas deben estar en una carpeta compartida. Un punto importante acá es saber cuál es el sistema operativo del equipo en el que residen las tablas. Si es Windows 7 en adelante, será necesario protegerse del bloqueo oportunista. Para ello se puede utilizar un programa llamado OpLockSet que lo bajas de la web. También es necesario que ningún equipo esté configurado para utilizar datos sin conexión.
La recomendación es que los equipos tengan buenas placas de red y se cuente con un buen switcher. En general, para sistemas operativos Windows, lo aconsejable es que tengan IP estática. Todos los equipos y el switcher tienen que tener UPS.
2) Debes decidir si tu programa correrá desde cada terminal (ejecutable distribuido) o correrá desde el equipo "servidor". Eso depende mucho de como trabajes (si recurres a tablas temporales, etc.)
3) Las tablas se deben abrir para acceso compartido:
USE (lcRuta_Tabla) IN 0 SHARED
4) Debes preocuparte por un sistema de bloqueo.
Esto viene de la mano de cómo programas las altas, bajas y modificaciones. Para VFP6 se me ocurre más sencillo utiizar el modo manual.
4.1) Bloqueo manual de registro: RLOCK()
4.2) Desbloqueo manual: UNLOCK (no recuerdo si en VFP6 se puede utilizar UNLOK IN talTabla )
4.3) Los comandos APPEND BLANK e INSERT INTO producen bloqueo del nuevo registro.
4.4) Se recomienda utilizar INSERT INTO en lugar de APPEND BLANK + REPLACE
4.5) Para el caso de REPLACE, la recomendación es utilizar un solo comando REPLACE por actualización de tabla;
Cada comando replace que se inserta necesita efectuar un control de bloqueo por lo que el uso de múltiples REPLACE termina resultando lento.
SELECT laTabla
IF RLOCK()
REPLACE FECHA WITH dFecha, IMPORTE WITH nImporte, FACTURA WITH nFactura
UNLOCK
FLUSH
ENDIF
INSERT INTO laTabla (FECHA,IMPORTE,FACTURA) VALUES (dFecha,nImporte,nFactura)
UNLOCK IN laTabla
FLUSH
SELECT laTabla
IF RLOCK()
DELETE()
UNLOCK
ENDIF
5) Después de las altas, bajas y modificaciones, utilizar el comando FLUSH que permite bajar el cache a disco. De otra forma nunca se sabe cuando Windows decidirá escribir en las tablas.
6) Tener en cuenta que el uso de SET FILTER sobre tablas compartidas se desaconseja totalmente. En lugar de SET FILTER se debe utilizar el comando SELECT-SQL para mostrar resultados filtrados en un cursor o tabla temporal. Para que el uso de SELECT-SQL sea eficiente, es imprescindible contar con buenos diseños de tablas, y con indices estructurales (cdx) construidos con la misma instrucción que se emplea en las consultas. En general, diría, evitar los índices sobre dos o mas campos. Por otra parte, los índices deben ser creado en función de la búsqueda de datos y no de la presentación (vicio en el que incurrimos los usuarios de tablas dbf).
Consultando cada una de las funciones y comandos aquí mencionados en la Ayuda de Visual FoxPro tiene que ser suficiente para empezar.
La otra recomendación sería tratar de pasar el sistema a VFP9, porque vas a tener menos problemas de corrupción de tablas y de índices (aunque para evitarlas totalmente deberías abandonar las dbf).