The area where you may experience the most difficulty with plugins is to do with video and media. There are now three major competing technologies and many other minority plugins that can play audio and video.
If you just concentrate on the main players, you still have a lot of work to do. These are:
Progressive Networks Real Media
Windows Media Services
Functionally they are all very similar. Some of the protocols are shared between them and they all deliver multiple streams to a player plugin.
Other plugins that you'll encounter will be:
Beyond that, some prefer an <EMBED> while others prefer <OBJECT> tags. This is platform- and browser-dependent so on one browser a plugin may <EMBED> and on another, the same plugin will work best in an <OBJECT> tag.
Be aware that using the same plugin in the same browser and implementing it as an <OBJECT> or an <EMBED> may mean that certain functionality is only available in one or the other.
Given that you now have your plugin running, in the right tags, and can talk to it, the functionality is different. Some plugins may allow the clip to be played backwards while others won't. Some may let you pause and play with different method calls, while at least one provides only a play_pause command. In that scenario, you can play or pause the clip but you won't actually know what state it is in.
Netscape and MSIE encapsulate plugin/embedded objects in a different way. In MSIE they are objects of the EMBED class. In Netscape they are objects commonly referred to as belonging to the Plugin class.
There is additional confusion in that there is a plugins array that belongs to the document and another than belongs to the navigator object. They both contain collections of objects but of different types. This is further confused by the fact that the document.plugins array is another name for the document.embeds array.
Due to this confusing situation, the best recommendation is that we refer to document.embeds and navigator.plugins and quietly ignore the document.plugins array. Furthermore we shall refer to Plugin objects as being something the browser can use to play embedded content and Embed objects as instances of a plugin that is alive and running in a document.