Yes. Some network drivers have support to be able to change the MAC address in "software". there is nothing really special about this. From a networking perspective, the MAC is only important within the local subnet. A remote host does not see the MAC address from where the packet is coming from.
Here is a quick video tutorial - How IP Packets are Routed on a Local Area Network: Video | Tutorial
Back in the 1990's, some ISP's would lock your account to your computer's MAC, so if you changed the computer, or installed a router between your system and the internet, it would not let you connect. The solution was for router manufacturers (Linksys, et al) to allow you to spoof your old MAC address so as far as your ISP was concerned, it was the same device connecting to the Internet via their services. This is pretty much unnecessary any longer as the ISPs quickly realized that the only thing this process did was to alienate their customers.