How do I grant root privileges to an app? I have installed Root Explorer on my HTC G12 phone. When try to view /init.rc, it shows 'No root privilege' and ask me to root my phone.

It seems Root Explorer didn't run as root (or this process is not added to some group with storage access). And, it seems on a non-rooted device, when the phone boots up, we are logged in as a non-root user.

Where does Android control the log-in user's privilege level? Is it in the init process?
The log in user is always a user.  You have to invoke su to run specific commands as the root user, and su will not work unless you have rooted your device to gain access to the root account (imagine it's password prtoected and you have to crack the password).  To gain root access on your device, check out How do I root my Android device?

Root Explorer and similar apps will automatically invoke su when they are able to.  The SuperUser app can be used to control access to su, so that you don't have to worry about rogue applications elevating themselves beyond your user permissions.