Modern smartphones are extremely powerful, sporting such impressive specs as GHz-CPUs and 1 GB of RAM. They're certainly faster than PCs of the last century, and thus are fully able to run some Windows and Linux versions just fine. However, there's a big architectural difference: desktop PCs are based on x86, while smartphones mostly run on ARM chips. This distinction may gradually fade away as Windows 8 will also be compatible with ARM, and Intel, the premier x86-CPU maker, has announced some smartphone partnerships at CES this year. For now, however, it's still a barrier that needs to be passed before you can run a traditional desktop OS on, say, an Android device.
But, you guessed it, there are some Android applications out there that emulate an x86-environment, basically a virtual PC that can run older versions of Windows.
Of course, setting up something like this isn't so trivial, but some people over at the xda-developers forum have written a little guide which provides all the necessary downloads as well – including some free Linux images that can be used directly.
Since Windows, even those old Windows 95 and 98 versions, is still a commercial product, you're on your own to supply a legal .iso or .img file to use on your Android device. After setting everything up, booting into the desktop system is as easy launching an app... and waiting for it to boot.