You are on track with your analysis. The 169.254.x.x address is an APIPA address. Without getting into the technical details, a Windows system will self assign itself an ip in this range when it is unable to negotiate an address with your router.
You could try applying a static ip address to see if that works for the time being. Here is a video tutorial I have on YouTube regarding TCP/IP configuration on XP. The concept is the same for other Win versions.
http://www.youtube.com/watch?v=F_drzbZcJSc
You may be able to resolve this by uninstalling the network adapter in device manager and letting windows rescan and reinstall it. This procedure fixes flaky issue.
JorgeM
Industrious Poster
4,017 posts since Dec 2011
Reputation Points: 294
Solved Threads: 546
Skill Endorsements: 115