Some of the differences change the core of the Web programming model. I've relied heavily on detecting the mouseover and the mousemove events on some Web sites I've designed because they make the site seem very interactive. These break badly on touchscreens because the smartphone can't distinguish between a touch that is intended to move a mouse and a touch that is intended to manipulate the size and position of the Web page. I would touch the screen to move the mouse to interact with a control and the iPhone would think I wanted to shove the page around to look at a different part.
The solution is to abandon these events and switch over to buttons to manipulate the screen. I added new buttons that move a cursor left and right instead of letting the cursor track the mousemove events.
Another solution is to use new events like the ones that Apple created to package the multiple touches that are detected by their phone. The gesturestart event begins when two or more fingers hit the screen, and the gesturechange fires whenever the fingers move a bit. If only one finger is left touching the screen, then the gestureend comes along.
These sorts of innovations are slowly being absorbed by the major programming frameworks. WordPress, for instance, comes with a theme that will reformat the data especially for the handheld screen. The theme automatically tracks the user-agent of the browser and applies the customized CSS and HTML changes to iPhone users only. Similar efforts are making it relatively easy for programmers to upgrade sites that rest upon Drupal, Ruby on Rails, Joomla, and many other content management systems.
A touch of native