So, bringing it back, then.
I'm assuming that you have some random variable in your AI decision-making, and that you sometimes assign actions which take more than one turn. Otherwise, you don't need anything.
You could store the current action as "Get item X" (well, "currentAcion = GET_ITEM" and "currentTarget = item"). Then each turn, the AI checks to see if there is an item of the type within sight, then moves as close as possible, picking it up if possible. This also works for things like slow melee guys (you don't want them charging dead targets), etc.
This is a pretty clean solution, as you can just let the AI figure the best way to accomplish its current goal each turn; this has the emergent behavior of making the NPCs look smart. The only thing is that this means the AI will repath each turn; this can be computationally expensive when the target is far away, or if you have a very large number of NPCs acting.
If you experience slowdown, you could save the path. When the AI checks if its current action is still valid, part of that check is if the item is on the last step of the path. If it is, then the NPC continues to step. If not, it chooses a new task.