Although it's true that the XMLs delivered by the Steam Community don't provide much valuable data, you can get the current status and the name of the game currently being played if the user has set his profile visibility to public.
(privacyState = public, visibilityState = 3)
First, you check the value of "onlineStatus". This can be "offline", "online" or "in-game". If the user is in-game, there will be an additional "inGameInfo" block and an "inGameServerIP" node. This may look like this:
xml code:
<inGameServerIP>1.2.3.4:5678</inGameServerIP>
<inGameInfo>
<gameName><![CDATA[Garry's Mod]]></gameName>
<gameLink><![CDATA[http://store.steampowered.com/app/4000]]></gameLink>
<gameIcon><![CDATA[http://media.steampowered.com/steamcommunity/public/images/apps/4000/d9101cbeddcc4ff06c7fa1936c3f381b0bbf2e92.jpg]]></gameIcon>
<gameLogo><![CDATA[http://media.steampowered.com/steamcommunity/public/images/apps/4000/dca12980667e32ab072d79f5dbe91884056a03a2.jpg]]></gameLogo>
<gameLogoSmall><![CDATA[http://media.steampowered.com/steamcommunity/public/images/apps/4000/5e47aefd968b67fdedf3155f92686991a3ec197e.jpg]]></gameLogoSmall>
<gameJoinLink><![CDATA[steam://connect/1.2.3.4:5678]]></gameJoinLink>
</inGameInfo>
As you can see, there's plenty of information there about the name and the server the user is currently playing on. The only requirement is that you set your profile to public
which shouldn't be so much of a problem when you're cautious about what you actually publish on it.