I was having an issue with our Catalyst 6500s showing up just as routers and not as switches. I saw a lot of posts from people having the same issue but nobody posting a solution. I finally figured out how to get this to work. You must apend the vlan # of the switch ports with an @. In other words if your switch ports are part of vlan # 10 you must list the snmp community string as public@10 and NOT simply as 10.
LANsurveyor has an option that will do this automatically. If you go to Tools->Options and choose the Miscellaneous tab there is an option called "Use Cisco VLAN Community String indexing", if you check that box you can just use public as the community string and LANsurveyor will add the @VLAN# when it is querying an SNMP device.