I build my own systems too, when I don't recycle $10 yard-sale boxes.
However, he may need (or even want!) Windows, in which case a complete
system may be significantly cheaper.
On the other hand I've heard that the best way to run Windows is in a VM
under Linux. Is there any way to migrate a pre-installed copy of
Windows into a VM?

Yes, you can use "vmware converter", it's a free download (need to
register though) and then use the converted system in vmware products,
or virtualbox, or even kvm (be careful to pick the right image format,
one that can be converted later). I had good results with windows 7 and
vmware converter 4, not so much with the newer 5 edition. Be aware that
to run windows in a virtualized environment you need to re-activate your
copy of windows, whatever that implies (I am not familiar with Microsoft
formalities).