How can I contact another user, if that user has not specified any contact details in their profile?
Instant messaging or private messaging is not available: requests to implement that have been declined to keep focus on questions and answers, and to keep those visible to everyone.
Some users are active in chat, and you might be able to set up a "one-on-one" chat room for you and the user you'd like to contact by visiting their user profile on chat and clicking the "start a new room with this user" button. (Note that the room will not be private -- if you have enough reputation, you can make it so that others cannot post messages in the room, but others will still be able to read the messages):
Then, if you have at least 1,000 reputation, change the room parameters to Gallery mode. If the user has never logged on to Stack Exchange Chat but has a Stack Overflow profile, you might also try on Stack Overflow Chat.
In rare cases where immediate action is necessary (e.g., the user has accidentally left login credentials in a post), you can flag for moderator attention and explain what the urgent matter is about.
On the flip side, if you want to provide a way for people to contact you, leave contact information in your user profile.
You can still see the "About Me" section of users' profiles. Often, users place links to Twitter, Github, and their personal website. By checking out these links, you can often see email addresses. Also, many users place their emails and Linked In profile links in their publicly available "About Me" section, especially if they are interested in networking.
I once found a way to contact another user in private.
The procedure is simple. We exchanged out twitter accounts in a chat session and followed each other. Then using Twitter's private chat function, we managed to exchange more contact methods.
It's really safe since if someone else followed your Twitter you can simply ignore him and send your message to the one you want to contact.