Why don't atoms with expanded valence shells have a formal charge?
Formal charge is the difference between the number of valence electrons that a neutral unbonded atom has and the number of valence electrons assigned to that atom when after it forms bonds in a molecule. It looks like you are making your mistake in assigning the proper number of electrons to the sulfur atom.

The electrons assigned to an atom are:


All nonbonding (lone pair) electrons on that atom in the Lewis Structure.
One half of all bonding electrons (one electron for each single bond, two electrons for each double bond, etc.). 




Consider water, $\ce{H2O}$. The oxygen atom has two bonds and two lone pairs. Oxygen originally had 6 valence electrons. We assign 6 electrons to it (4 nonbonding and 2 bonding). The formal charge is $6-6=0$.



Now consider the hydroxide ion, $\ce{OH-}$. The oxygen in hydroxide has 7 electron assigned to it: 6 nonbonding and 1 bonding. The formal charge is $6-7=-1$.



Now consider the nitrogen atom in the nitrate ion, $\ce{NO3-}$. Nitrogen originally has 5 electrons. In the nitrate ion we assign 4 electrons to that nitrogen (1 for each single bond and 2 for the double bond. There are no lone pairs). The formal charge is $5-4=+1$.



As a final example, let's look at the P in phosphate, $\ce{PO4^3-} $. Phosphorous original had 5 electrons, like nitrogen. We assign 5 electrons to phosphorous in phosphate (1 for each P-O bond and two for the P=O bond). The formal charge is $5-5-=0$ 

How many electrons are assigned to the sulfur atom in $\ce{SO3}$? From the question it sounds like you have the correct Lewis Structure. It looks like you are making your mistake in assigning the proper number of electrons based on the number of bonds.