For example one can see a device has crashed, the other sees communications loss and the third will see that she can't install a driver for the device
With this issue are your testers able to determine the root cause by investigating further? If they are unable to investigate for whatever reason then would it be possible to provide support in the form of tools or similar?
If however you are unable to provide support in this way to further allow your testers to narrow down the cause of the issue then the following may provide some way of reducing the number of duplicates in your tracker.
Primarily having testers perform a thorough search is one of the best ways to reduce duplicates but after searching if the tester is still not sure if it is a duplicate better to put it in just in case it is not.
Over reporting can become a problem if a large number of testers are doing it for a single issue, but this can be avoided by effective communication between testers if the issue is found to be present in several areas of the application.
This doesn't take into account that the root cause may be multiple issues and not just one, but gives the developer some time to research the issue and then feedback to the test team if the issue should be bugged per occurrence (with some sort of constraint, per dialogue, mission, element) or as a single issue.
With this information it also allows the test team to more effectively regress the issue.
Another way is to unify the terms that the test team use to describe the problem, perhaps on a per component basis.
This comes at the expense of setting terms based on perhaps changing features throughout the development cycle and keeping the entire team up to date on the latest terms.