Hello,
I can be connected to any friend on another end of the internet using third party apps like Skype. But why can't i get connected ( say ping or telnet ) to his machine even if i have his ip address?
If he has a router like most people do it actually owns the ip address. It does not know to send it to the PC. You have to setup port forwarding to make it work.
It also could be the firewall settings it is very common for machines to reject any external connection.