Is giving user "System Administrator" only way to enable user to manage other users?
No. Although for full access to manage users and groups you need to be a system administrator, it is also possible to grant the Permission Management right to a user and thereby enable them to manage rights and permissions within a given publication (and IIRC some limited access to the User/Groups management screens).
You will need to decide for yourself whether this limited access is sufficient for your needs. If not, you can either consider making the person a system administrator, of doing a custom implementation which impersonates a system administrator to perform specific tasks.
Yes. Users must be a System Administrator in order to fully manage another user's accounts, memberships etc.
As Dominic points out in his answer, you can grant users some ability to manage permissions and rights within a publication and some limited access to the account management screens.
You could, of course, create an alternative interface to update user accounts via the Core Service API, but that could turn into a lot of work!