I personally like "Actor". This is the term used in Use Cases.
Actor implies activity and interaction, and it also implies that actors may have different roles. "Participant" is probably the next closest, yet it doesn't have the advantage of an easy association with roles.
"User" does have negative connotations, but possibly more importantly, it has the implication the system is static and the sense of interaction is low, particularly "end user", whereas "actor" suggests actively engaging with the system.
"Client" and "Customer" both have the implication that you are providing a service for remuneration. That is often not the case. Often it is the actors who are being paid to use the system. Also one of the challenges is in user acceptance of the system. "Client" and "Customer" suggest 'we've paid for it and now you must deliver', which is not conducive for developing the Use cases and information gathering that you need to design a system.
"People" also suggests nothing in relation to the system. It only affirms that you are a human being, which hopefully you are not doubtful of. It is also true that actors interacting in a system may not be people.
What you need are "Actors". People or things that can take different roles in interacting with a system or software. "Actors" implies that the people who are going to use the system need to get actively involved in process of developing it - which they most certainly do. The more active involvement you can get from your prospective actors in development, the more likely you will have a better user experience over the whole lifetime of the system.