The link in Devdatta's comment partially addresses how to simply drape the vectors, but despite this you can still experience the issues the OP mentions. I believe (personal hypothesis) that the mismatch is due to the difference in triangulation between your vectors and the underlying TIN. You notice this especially with large polygons where the triangulation can result in long triangles that slice through the terrain - giving that patchy appearance mentioned by the OP because only the vertices appear to be matched to the terrain.
So if a nice visualisation is essential, you must either 'cheat' or use a better package. I long since opted for the latter. But here are some cheats I used with varying success depending on the data and visualisation (warning - all the following fall into the category of art rather than science!):
- Very slightly extrude your polygons - this can be good for roads, especially if you set the base height a little below the terrain and extrude until it is just poking through. It helps to hide the places where the road flys over an underlying concave area. The trick is to get the extrusion right - which depends a LOT on the scale of your scene.
- Intersect you polygons with a fishnet. This effectively adds vertices to the inside of the polygons and therefore it should sit on top of the terrain better. The downside is a much more complicated vector layer and therefore greater data overhead and polygon count to render... but that's your trade-off quality vs rendering speed.
- Hover the layer a tiny amount above the terrain. Do this by adding a tiny amount to your base heights. If you are not zoomed in too close and don't have too much of an oblique camera angle, this can work. Again, the amount to 'float' your polygons by will depend on the scale of your scene and camera angle.
- Densify line features (the aim of this is similar to point 2).
- Change the resolution of your TIN. Experimentation will help here to decide which way to go. Increasing the resolution of the underlying TIN can actually sometime make matters worse and vice versa, a lot depends on prevalent undulations of your particular TIN and how they align with the orientation of your vector data.
- Convert your polygon data to a raster and drape that. Raster on raster drapes works better than vector on raster in ArcScene. Some polygon data and associated rendering are amenable to this. Some data types and visualisations may not be so.
Outside of ArcScene, if you have your 3D data you can use tools like Blender's excellent shrink-wrap modifier (especially together with a subdivision modifier) for instance. MeshLab has many excellent tools as well. Stepping outside of ArcScene, though requires more skills and time so it depends on whether your visualisation warrants it.
Another 'cheat' I forgot which may be best of all: Create a map image in 2D containing all your 'flat' features (roads, fields etc) and render that as a georeferenced raster. Then drape this instead of your vector data, making your TIN invisible altogether but taking your base heights from it. You are then only left with 3D elements which are always a bit more amenable to extrusion etc. to hide flaws. You need a fairly high resolution raster for this to work and it can quickly overload lesser graphics cards, but if your machine is up to it, it works very well.