I'm probably not understanding completely what you are going for. Your example of the following:
nsarray[1]="Hey dude, what's up?"
Is only a single line of text. Are you saying that you'd have different NPCs and each one would just have a single line of text to say? And that text would be indexed via the array value? If so, I'm thinking this is extremely limiting. Wouldn't you want the NPCs to be able to say multiple lines of text?
Anyway, if this is the case and you are simply trying to access a single element of an array for that particular NPC then I don't see a problem. You simply make a global array that uses the e value of the entity and then store the particular index that you extract from the large health value. Essentially, this:
1. Extract index from large health value in init script (e.g. index = 1)
2. Set global array by entity's e value and assign the index to it. (e.g. npcindex[e] = index)
3. Get NPC dialog text from global array (e.g. Prompt(nsarray[npcindex[e]]))
You see?
System Specs: OS - Windows 7 Home Premium 64-bit SP1, CPU - AMD Phenom II X4 945, 3.0Ghz, RAM - 8Gb DDR3, GFX Card - 2048MB NVIDIA GeForce GT 640, FPSC-R Version - Beta 1.0085