Do mining pools take any precautions to make sure that their members are not doing the exact same work (i.e. they've been given the exact same block to mine, and thus they're doing the same hash calculations as a fellow member)?
No, there's not a need. The "work" generated by the pool includes the time, transactions, transaction order, and a completely unique coinbase. All of this information is hashed once with SHA256 and then sent to the client for them to do the POW calculation on. There is absolutely no chance of two pools creating the same work, and indeed pool software is designed to make work unique to each user. Protocols like GBT and Stratum also generate work items locally so the pool server is even less involved.