A friend recently asked me to work up a config on a cisco to do trunking to a 3com switch for a client.
Cisco in there wisdom calls a link with VLAN tagging enabled a "trunk". A trunk is what everyone else calls a link bundle, but its just semantics. A trunk = a link with 802.1q vlan tagging enabled.
Cisco has the concept of the "native vlan" when talking about trunk links. The native VLAN is treated differently on trunk links in that those frames go into the link untagged.
3com does not have this concept. Additionally/consequently, all frames are tagged on a 3com switch that has vlan tagging enabled by default.
This can be overcome in a number of ways, but I chose to over ride it on the Cisco with the command...
'vlan dot1q tag native'
The effect of this is that the "native vlan" is also tagged. Nothing will go out the trunk port without a VLAN tag in it.
Could write a whole bunch more here about number, use of VLAN 1(and why security boogeyman will tell you its teh evil) and all that other noise, but this is one strategy to deal with interoperability between 3com and Cisco switches.