# ifconfig eth0 down
# ifconfig eth0 hw ether 00:80:48:BA:d1:20
# ifconfig eth0 up
# ifconfig eth0 |grep HWaddr
[..]
EDIT: Someone stop me if I am all wrong... does this actually work on all hardware ?
It doesn't work everywhere. On the Nokia N800 it won't work because some ifconfig commands (including the hw one) doesn't work unless the interface is actually _up_, and the change doesn't take effect. My guess this depends on the driver, but it could also be due to hardware. But on computers in general it usually works though.