Do you power the Arduino with the usb connector ?
In that case the 5V could be 4.8V.
The lower the 5.0V is, the higher temperature the Arduino is reading, since the 5V is used as a reference.
There may be a problem if the Arduino is used on a test bench with a USB cable and then powered in some other way as a mobile device. Is there a way to capture the input voltage and use this as a variable to ensure that the temperature readings are accurate?
The Arduino can use the internal voltage reference, independent of the power supply. That solves the problem.
It is possible to measure its own 5V, by testing it against the internal voltage reference. The internal mux can be switch in a way to make this possible. Search for : Arduino ReadVcc
Like this: http://code.google.com/p/tinkerit/wiki/SecretVoltmeter
However, sometimes the variation of the 5V is needed for more accuracy.
Suppose a resistor and LDR are used to measure the amount of light. Since they use the 5V, also the Arduino should use the 5V as reference. If the 5V changes to 4.8V, they both change according that and the result is a steady measurement.
When sensor outputs a certain specific voltage (for example 2.0V for 20 degrees), the Arduino should use a fixed voltage as reference. That is why the internal voltage reference is better in such cases.