I’ve already posted a way to check ICQ invisibility. If that person’s status is set to Invisible, you can still know whether he/she is online.
In Yahoo Messenger, you can change your status to “Invisible to Everyone” which means everyone will see you as offline but in fact you’re online!

The invisible feature is really great because sometimes you don’t want people to bug when you’re really busy. However, this useful feature is now pretty useless because there is a way on how to detect invisible users on Yahoo Messenger.
There are in fact many sites I found that is able to detect invisible users on Yahoo Messenger. But I’ll just list two in case one goes down, at least you still have the other as backup.
1. XEEBER

Straight forward. No software needed. Just visit XEEBER’s website, enter the Yahoo ID that you want to check and click the magnifying glass.
2. Invisible Scanner

Also the same as XEEBER. Just enter the Yahoo ID and click the CHECK button.
There is a manual method which I read in a comment which is to invite the offline contact for conference. If the contact is really offline, you’ll get an alert stating that the contact is offline. If nothing happens and you don’t get the alert, it means the contact is indeed online! What a bug…
I wonder why there is no tool or website to check “appear offline” status in Windows Live Messenger? If you know any way that can detect a person appear offline in MSN, please share it with me.