How fast does electricity flow?
This is really more of a physics question than an electronics one... The reason being electrical and electronics engineers rarely (if ever) consider such subatomic calculations. The fact that electrons are moving at all is what really matters, how fast they move is of little consequence to the circuit. What may be useful to the engineer is knowing how fast an electric potential (voltage) can change as this will decide the maximum data transmission on a wire (wire speed) which is related to the resistance, capacitance, and inductance of the charge carrier, among other things. This is also associated with the wave propagation speed discussed in some of the other answers. These are two completely different issues...



Electricity Overview

To start, "electricity" doesn't flow. Electricity is the physical manifestation of the flow of electric charge. Although this term applies to a broad spectrum of phenomena, it is most typically associated with the movement (excitation) of electrons - negatively charged subatomic particles. When certain elements are compounded, the electrons can move freely through the outermost layer of the electron cloud from one atom to the next. A conductor easily allows the flow of electrons, while an insulator restricts it. Semiconductors (like silicon) have controllable conductivity, which makes them ideal for use in modern electronics.

As you may know, electric current is measured in amperes (amps). This is really a measurement of how many electrons are moving through a single point in one second:

1 Amp = 1 Coulomb per Second = 6.241509324x10^18 Electrons per Second

As long as there is a voltage (potential) present across a conductor, (a wire, resistor, motor, etc.) current will flow. The voltage is a measurement of the electric potential between two points, so having a higher voltage will allow for a higher current flow, that is, the movement of more electrons through a point per second.



Electron Speed

Of course, the fasted known speed is the speed of light: 3*10^8 m/s. However, electrons typically do not move anywhere near this speed. In fact, you'd be surprised to know how slowly they actually move.

The actual speed of the electron is known as drift velocity. When a current flows, the electrons don't actually move in a straight line though a wire, but sort of jiggle around through the atoms. The actual average speed of the electron flow is proportional to the current using the following formula:

v = I/(nAq) = current / (carrier density * carrier cross-sectional area * carrier charge)



This example is taken from Wikepedia, because I didn't want to look up the numbers myself...

Consider a 3A current flowing through a 1mm diameter copper wire. Copper has a density of 8.5*10^25 electrons/m^3 and the charge of one electron is -1.6*10^(-19) Coulombs. The wire has a cross-sectional area of 7.85*10^(-7) m^2. Hence, the drift velocity would be:

v = (3 Coulombs/s) / (8.5*10^25 electrons/m^3 * 7.85*10^(-7) m^2 * -1.6*10^(-19) Coulombs)

v =  -0.00028 m/s

Notice the negative velocity, implying that current actually flows in the opposite direction typically thought. Aside from that, the only thing to notice is how slow this actually is. A current of 3 amps is not that small, and copper wire is an excellent conductor! Actually, the higher the resistance in the charge carrier, the faster the velocity will be. This is similar to how different settings on a shower head will cause the same pressure of water to come out of the faucet at different speeds. The smaller the hole is, the faster the water has to come out!



Making Sense of This

If electrons move so slowly, then how is it possible to transmit data so quickly? Or even, how can a light switch control a light instantaneously from so far away? This is because there is not a single electron that must flow from one point in the circuit to another for anything to work. Actually, there are many free electrons (the amount depends on the elemental make up of the carrier material) in every point of the circuit at all times which move as soon as a great enough potential (voltage) is applied.

Think of water in a pipe. If there is no water in the pipe to begin with, it will take some time for the water to reach the faucet when a spout is turned on. However, in a home, there should already by water in every point of the pipe, so the water flows out of the faucet as soon as it is turned on. It does not have to travel from the water source to the faucet because it is already in the pipe, just waiting for the potential to push it through. It is the same with a wire: there are already so many electrons in the wire, just waiting to be pushed through by the presence of the voltage potential. The speed it would take for one electron to move from one point in the wire to another is completely irrelevant. 

On the other hand, the speed of data transmission through a physical medium is important and does have a theoretical maximum, as discussed in this wonderful question and answers so I won't get into that here.