I do the following to make my applications more flexible for future adaption of new technologies.
(1) Divide larger applications into multiple components with well defined interfaces. For example if I developed a Windows Form + basic ADO.net application on .net 2.0, later I want to convert the UI to WPF without affecting data persistence, or use entity framework for data persistence without affecting UI, having them in different projects with well defined interfaces will definitely help.
(2) If I know I will want to adapt new technologies some time down the track with a long dragging projects, I allow some tech debts budget, and have comprehensive unit tests. For example, if I want to convert a component's data searching routines to LINQ but cannot be bothered converting them all at once, I'd allow some extra time each time I touch the component, so I can convert a little each time, and gradually complete the change. Unit tests will make sure I have not broken the logic.
In summary, if you feel you absolutely want the new technologies when they become available, making sure components are well decoupled and a good unit test coverage from day 1 will definitely help.