Zigbee is always zigbee, but the standard allows for different "profiles,"including manufacturer proprietary ones.
These are not all able to communicate with each other, they don’t even use the same addressing schemes.
SmartThings uses the Zigbee Home Automation profile (ZHA 1.2). Devices using other zigbee profiles may be able to join to the network, but their communications may not be understood, or they may frequently drop off because they don’t receive a handshake message they are expecting.
There a lot of different ways to explain this, but I think one of the easiest is to think of zigbee as a post office and the different profiles as different languages. The outside envelope for different messages may look similar, have a specific format, and have enough information to pass the letter on to its destination. But the contents inside could be written in Chinese, Russian, English, etc. A person who can speak one of these languages doesn’t necessarily understand any of the others.
That’s not a perfect analogy, but it is good enough to explain why two zigbee devices might not be able to work together even if they’re on the same network.
Zigbee design prioritizes energy efficiency. If a feature isn’t needed by a particular profile, it was usually cut. A limited set of choices meant less energy required to process each message.
The ability of individual manufacturers to design their own profiles was considered a plus, particularly by companies with major security requirements. Essentially they got to write their own messages with their own secret codes, knowing that no one else would be able to read them. It’s one of the reasons that zigbee became popular with security systems. But it’s also the reason why you can’t usually use a control4 zigbee device with a SmartThings system. They are both using zigbee, but they are using incompatible profiles.
The following is an engineering document which explains how one transceiver manufacturer tries to deal with different zigbee profiles. Most people can just skip this, but those with a firmware-oriented technical background who want to see a practical example should find this interesting:
Anyway, long story short: the zigbee standard allows for multiple profiles, and they are not all compatible with SmartThings. Look for Devices certified for ZHA 1.2 and you’ll have the best chance of getting them to work with SmartThings.
(By the way, the zigbee alliance is working on a meta profile, zigbee 3.0, which would combine many of the individual profiles into one, and add additional IP addressing support, but it’s not widely adopted yet and it won’t be backwards compatible. And the zigbee standard will still allow for manufacturer specific profiles.)