My first recommendation is to address the server. First, check the amount of disk space and ensure there is a great deal of capacity available on the partition where the database is located (at least 30% free space). Having enough free space is important to ensure that you can defragment the drive at any point. The Windows 2000 management console should allow you to defrag the partition. With ISAM databases, one of the biggest performance bottlenecks tends to be disk I/O issues. Regularly pruning the database and managing the file structure it's lying on will certainly increase performance. If it also becomes a problem you may consider a RAID or faster RPM drives to decrease the bottlenecks on the disk access. You would want to justify this using counters while users are attempting to access the system by including the counters for Read and Write Disk Access as well as Page files. DiskMon by SysInternals will help you gather this same information in an easier format to process.
There's also some great freeware tools you might consider downloading and installing to identify what services are accessing the files. This has been a great win for diagnosing items like virus scanning interfering with lookups. FileMon allows you to investigate what files are being accessed by the processes. Virus scanning processes can slow down ISAM lookups as well.
After ensuring that the server is not being a bottleneck with file and disk access, you would then want to consider the network. I would first conduct tests on the server itself and see how long the process takes. Then I would move out to one connection and diagnose from there. Using a network analyzer would also help identify common causes of concern and bottlenecks. With regard to other performance problems, I would suggest that for a small office like this to get an Ethereal capture as it's quite extensive in diagnostics but is also free.
This was first published in April 2006