You've answered your question by yourself.
If you need to use the same QTP script with different data - data should be different.
It means: no way, but using External DataTable.
Every tester will have this Excel file in his\her PC. The location of this DataTable should be the same for everybody. You will point into this path external DataTable in TestCase.
No matter - what data would be in this personal DataTable, TestCase will read and execute it.
It will be different data for everybody.
Thanks for ur prompt response, as i have said our users are going to access the same server & would be using same Data source, but the instances would be different, in such a case, whether using Internal/External DataSource which would be more efficient