Saying you "need" these fields frightens me. You certainly don't need all these fields for a Norwegian address.
Not only does splitting address input into that many fields cause problems for the user trying to force their address into a form made for another country, but how should the address data be reformatted into a correct address?
How do you suppose a Norwegian address on this form, should be forced into these fields? And when the "city","postal code (or zip)", "province(or state)" fields are randomly assigned some of these values, how should you print the label in the correct order?
<Name>
<Street-name> <house-number>
<4-digit-post-code> <uppercase place name>
NORWAY
E.g.
Ola Normann
Karl Johansgate 13b
0599 OSLO
NORWAY
I'd reccommend using just:
Name: [ text line input ]
Address: [ multiline ]
[ text area ]
Country: [select box or text line input]
Why make it more complicated than that? This should work perfectly for any type of address, and easy to use.
(If for some reason Americans are unable to write their own address properly, just make a US specific form when USA is chosen as country, and let anybody else fil out the simple name/addres/country form)