The weapons, ammo and firemodes are defined in a series of .ufo files. The skill (assault, sniper, close, explosive) which is used to determine accuracy in the game's code is specified in the firemode's definition, not the weapon definition. The firemode is defined inside of each ammo object's definition. For 95% of cases, these distinctions are irrelevant to the player. But splitting these definitions into different pieces is what allows us to set it up so that the player can choose, for instance, different grenades for the grenade launcher. In the future, we hope to have more ammo options for other weapons (sniper/assault rifles).
In 2.5, different firemodes within the same weapon were set up to use different skill types (a bit of a controversial change). Now, firing an aimed shot with the assault rifle draws on the sniper skill, not the assault skill. But all other firemodes of the assault rifle draw on the assault skill. Firing a snap shot with a sniper rifle draws on the assault skill, not the sniper skill. But firing an aimed shot wih the sniper rifle draws on the sniper skill.
In general, skills in 2.5 are designed to represent proficiency in a particular type of fighting, rather than a particular weapon. This was done for lots of reasons that have been discussed in a lot of the 2.5 weapons threads you can find around the forum.