I use my Vodafone iPhone to send an SMS to check the balance when I arrive in Italy (it is always negative) and I then go to Hudson News or more recently the Currency exchange booth and put enough Euros onto my phone to get it back into positive territory for the duration of my trip. Maybe I have been lucky with Vodafone but the people at the stores I have dealt with in Milan sound nicer than the TIM people you have dealt with.
The currency exchange airport booth is rarely busy and they quickly processed (for no additional fee) the credit card payment to make my phone balance positive.