The biggest barrier to cost...
Microsoft are by far and away the biggest cause of higher computer prices these days...
While the price of hardware has steadily decreased, their software has become more and more expensive.
While hardware that's a few years old, and therefore obtainable very cheaply, is more than adequate to run Linux, it cannot run the latest microsoft bloatware, and buying software from microsoft could more than double the price of the hardware.
Look at the new cheap computers becoming available, the OLPC project, the $200 PC walmart has been selling, and the Asus eeepc, all of these come with linux by default, are more than adequate for most peoples needs (certainly more than capable of allowing schoolkids to do online research) and wouldn't be able to run the latest microsoft software at a usable speed.
What the government really needs to do to achieve their goals is...
Move away from microsoft OS's and proprietary apps. By using open source apps they can save money for themselves and for the students, and as a side benefit schools can provide copies of open source apps to students.
Recycle old computers, companies throughout the compay discard thousands of computers every week, either because they schedule replacement on a regular basis, or because they are no longer powerful enough to run current bloated proprietary software. Many companies pay to get rid of these machines, and they cost money to dump/recycle. With the correct incentives these disposal companies could provide these machines to schools cheaply or free. Such computers could easily run linux, and could be provided free or cheaply to schoolkids. Free computers could be restricted to families below a certain income level or claiming benefits etc.
Introduce a national "basic" level of broadband, that is enabled by default with any phone line. Doesnt need to be anything special, maybe 64k or such. Quick enough for educational/research needs etc, and ensuring that everyone has connectivity, but faster connections would still be available to those who want more throughput. Failing that, perhaps offer a free dialup for school students, maybe even have a usage time limit or something.