JRA
(Jukka Rahkonen)
3
Most flexible method is to import OSM data first into PostGIS database by using osm2pgsql and write the shapefiles out with pgsql2shp utility or with ogr2ogr. The latter can write a bunch of other GIS formats as well, see
http://gdal.org/ogr/ogr_formats.html
Osm2pgslq can import all the tags into PostGIS if the -k switch is used.
Unfortunately it is not extremely easy to start using PostgreSQL/PostGIS. There is an osm2spatialite script at http://maps4mac.googlecode.com/files/osm2spatialite-0.1.zip
I have not used it but if it works fine it should create a nice spatial GIS database without a need to know anything about database administration stuff. Once data are in spatialite it is possible to write out shapefiles as you wish with ogr2ogr.