Problably their are more options but this is one of them I already used:
--> use the Cyclone and a EPCS device (check the right size) and use the Active Serial Configuration scheme (AS)
http://www.altera.com/literature/hb/cyclone-iv/cyiv-51008.pdf --> connect your I2C bus to the fpga
To program the eeprom you need to make a design (next to the functional one) for the cyclone that is able to program the EPCS. It looks like I2C interface<-> BUFFER EPCS <->Program Interface, that is a bridge between I2C and serial epcs interface.
When you want a remote upgrade you can simply use the interface in your design to reprogram the eeprom.
More info on exisiting IP to do a part of it: Serial Flash Loader
http://www.altera.com/literature/an/an370.pdf !!!!!!NOTE: this method is (relativly) simple but has one big draw back: if remote upgrading fails (like power fail during programming) the configuration is lost and the only option to revive the unit is bringing it to a facility who can program the EPCS from scratch (JTAG).
!!!!!! NOTE: standard I2C data rate is fairly low: it will take a long time to program the epcs wich makes the system even more vulnarable. You need to program about 6mbit at 400khz it is already 15s and no overhead is counted in this calculation.
Options to improve the scheme is working with a BOOT image and a normal operation image and use a fall back scheme but this is already more complex. Another option is to use a CPLD to do the bridge between EPCS serial interface and I2C interface
Good luck!