Muslim living in the US and other foreign countries especially have this problem. Is shaking hands with a non-Muslim haram in Islam?
There is no law in the Quran or sunnat to prohibit such an action.
In Islam, if something is not prohibited, then it is halal.
Allah only prohibits leaving the Muslims aside and being allies with non-Muslims.
يَا أَيُّهَا الَّذِينَ آمَنُواْ لاَ تَتَّخِذُواْ الْكَافِرِينَ أَوْلِيَاء مِن دُونِ الْمُؤْمِنِينَ أَتُرِيدُونَ أَن تَجْعَلُواْ لِلّهِ عَلَيْكُمْ سُلْطَانًا مُّبِينًا
O you who have believed, do not take the disbelievers as allies instead of the believers. Do you wish to give Allah against yourselves a clear case?
Nisa 144 (4/144)
In detail, Allah does not even prohibits being allies or having truce with non-Mumins. Allah only prohibits being ally instead of Mumins, leaving Mumins aside and being allies with them.
Handshaking has nothing to do with being ally. It is a formal greeting protocol when two people coincide or meet. Close friends do not usually handshake, they hug or just say "Hi!" to each other.
Hand shaking and daily encounters are not haram. However loving them is. In the end, a mushrik/kafir/munafiq is an enemy of Allah and you would not want to hang out with them.
لَّا يَتَّخِذِ الْمُؤْمِنُونَ الْكَافِرِينَ أَوْلِيَاءَ مِن دُونِ الْمُؤْمِنِينَ ۖ وَمَن يَفْعَلْ ذَٰلِكَ فَلَيْسَ مِنَ اللَّـهِ فِي شَيْءٍ إِلَّا أَن تَتَّقُوا مِنْهُمْ تُقَاةً ۗ وَيُحَذِّرُكُمُ اللَّـهُ نَفْسَهُ ۗ وَإِلَى اللَّـهِ الْمَصِيرُ
"Let not believers take disbelievers as allies rather than believers. And whoever [of you] does that has nothing with Allah , except when taking precaution against them in prudence. And Allah warns you of Himself, and to Allah is the [final] destination."(3:28)
Edit: I guess the verse above is not clear for some people. I still insist the answer is there, but here is another verse:
بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ يَا أَيُّهَا الَّذِينَ آمَنُوا لَا تَتَّخِذُوا عَدُوِّي وَعَدُوَّكُمْ أَوْلِيَاءَ تُلْقُونَ إِلَيْهِم بِالْمَوَدَّةِ وَقَدْ كَفَرُوا بِمَا جَاءَكُم مِّنَ الْحَقِّ يُخْرِجُونَ الرَّسُولَ وَإِيَّاكُمْ ۙ أَن تُؤْمِنُوا بِاللَّهِ رَبِّكُمْ إِن كُنتُمْ خَرَجْتُمْ جِهَادًا فِي سَبِيلِي وَابْتِغَاءَ مَرْضَاتِي ۚ تُسِرُّونَ إِلَيْهِم بِالْمَوَدَّةِ وَأَنَا أَعْلَمُ بِمَا أَخْفَيْتُمْ وَمَا أَعْلَنتُمْ ۚ وَمَن يَفْعَلْهُ مِنكُمْ فَقَدْ ضَلَّ سَوَاءَ السَّبِيلِ
"O you who have believed, do not take My enemies and your enemies as allies, extending to them affection while they have disbelieved in what came to you of the truth, having driven out the Prophet and yourselves [only] because you believe in Allah , your Lord. If you have come out for jihad in My cause and seeking means to My approval, [take them not as friends]. You confide to them affection, but I am most knowing of what you have concealed and what you have declared. And whoever does it among you has certainly strayed from the soundness of the way." (60:1)
P.S: If you can't take someone as an ally, you can't love him/her. Love may only start after you ally with someone. Allah clearly says in the verse that His enemies are our enemies by saying "...My enemies and your enemies as allies..."
Another Edit: Inshaallah you will awaken this time.
"And do not incline toward those who do wrong, lest you be touched by the Fire, and you would not have other than Allah any protectors; then you would not be helped." (11:113)
"Then will you take him and his descendants as allies other than Me while they are enemies to you? Wretched it is for the wrongdoers as an exchange." (18:50)
"Oh, woe to me! I wish I had not taken that one as a friend. He led me away from the remembrance after it had come to me." (25:28-29)