When the problem exists, I would check the settings on the PC at the time of the problem, specifically the IP address.

Assuming you are running XP, and you have enough user rights, click Start, Run, and type in cmd, then hit OK.
In the Dos like window, type IPCONFIG /ALL and hit enter.

If you do this for all PC's that are running at the time, you should get enough information to find the issue - IF - it is address related. Check the detail about IP ADDRESS - if any are duplicates, or none assigned.

Troubleshooting out towards the router can them incorporate the above thread suggestions.

I suspect you are getting improper addressing, based on what you have described. If your son assigned an address (hard coded), or the pc's are holding the address longer than the router knows, it could be assigning the same address to another pc, and this will cause conflicts. Typically these are reported by Windows, but it might not be displaying them to you.