I too have wondered about this for a couple of minor side projects. I've always resorted to scraping, but it feels wrong and I know it's not feasible for commercial projects.
I've always assumed that there was some commercial data source out there that would provide all of this information in a nice, structured format for some kind of fee, but I have yet to find it.
One nice thing about major sites moving to "live" scoreboards is that you can often find nicely structured data sources behind them. For instance, here's the NFL's live score feed, in JSON:
http://www.nfl.com/liveupdate/scores/scores.json
(Unfortunately, it's empty as I write this because there are no games going on right now. Here's an example taken late on a Sunday or on Monday morning: http://gist.github.com/626612)
Another, related question is how to get good gambling information (point spreads, totals, etc.) for the same use case. I think this might be easier, as I've come across various sports book sites in the past that offer subscription services.
On Yahoo's NFL odds page, it says their data source is OddsShark (http://www.oddsshark.com/) whose home page advertises
Offer comparative live odds and other sports stats on your site FREE of charge.
You pick the sportsbooks, you pick the bet types and OddsShark.com sports betting odds engine does the rest, delivering feeds to your site.
I got in touch with them, but never received a response...