1000BASE-SX is a standard. Cisco's ports will talk to 3Com's, Foundry's, Extreme's, Nortel's, etc. There may be some proprietary features you need to disable that work well between Cisco's switches, but do not work with standards-only switches like 3Com's.
You probably need to disable autonegotiation. Cisco's switches run the GBICs at 1000 full, but there's still the ability to participate in some kinds of autonegotiation. To disable this, go into config mode on the Cisco switch, and go into the Gigabit interface you want to configure. Run these commands:
speed nonegotiate
duplex full
switchport nonegotiate
Note: some of these commands may not be present on the interface, depending on IOS version; or on the switch type, if you also try them on 2950G or 3500 XL models.
On the 3Com, make sure it's set to 1000 full duplex.
Now all you have to worry about on the Cisco is whether it's a VLAN access port or VLAN trunk port. If trunk port, then on each 3Com you also have to worry about creating the VLANs, and assigning ports to the VLANs, and VLAN tagging.
Hope this helps.