The reason it happens in some browsers and not others is because these intermediate CAs are constantly changing in comparison to the root CAs. This means that browsers (as well as software such as openssl) must constantly update who their trusted CAs are. If an intermediate CA is a trusted CA, then the server you're connecting to does not need to provide the intermediate CA as it's already trusted.
This is evidenced by the DigiNotar and Comodo breaches. These CAs were trusted CAs in most browsers, so when a client received a certificate signed by one of these CAs it did not verify that the certificate of the CA was signed by a root CA. So even if the root CA who issued the certificate for this breached intermediate CA started rejecting signing verifications, it would still appear to be a trusted SSL connection because the browser never asked the root CA if the intermediate's certificate was valid. This meant that mozilla, google, microsoft among others now had to issue security updates to their browsers to remove the compromised CA from being a trusted CA.
So when you see that one browser is accepting a certificate but another browser is not, you don't want to simply accept the rejected one because it's possible that the rejecting client is more up to date than the accepting one. At this point upgrade the rejecting software to the most recent version and see if that fixes the problem (or upgrade the accepting version to see if it now rejects the certificate). If that does not solve the problem then you should contact the company you're trying to communicate with and let them know of the problem. Do not blindly trust a certificate just because one browser accepts it but another does not.