Solidworks 2009 will debut a new feature that will allow you to create a Bill of Materials directly inside an assembly file. Once created you can then import that BOM into a drawing where you will get an exact duplicate. Be aware however that once the BOM is inserted into the drawing, it is no longer linked back to the BOM inside the assembly. So if you make changes to the assembly BOM, it wont reflect in the drawing BOM. The best way to avoid any issue is to use a BOM template that is completely driven off of custom properties. That way no matter where you make a change, it will update everywhere. Here are some screen shots:
This image shows the BOM inside the assembly, and the query box you get when you double click to edit a cell. In this case the cell is a link to a custom property of one of the parts, so by checking keep link, the change to the cell will be maintained everywhere.
The shot above shows some of the options including the ability to open the BOM in a new window which will allow you to Control-Tab between the assembly and a window containing only the BOM. You cannot however drag the window outside of the Solidworks window say onto another monitor. Another option is Save As which allows you to save out the BOM as any one of the following formats:
That allows you to export your BOM out to say purchasing.
When inserting a BOM into the drawing of the assembly that already contains a BOM, you will want to check the copy existing table option in the following box:
That will copy over a duplicate of the BOM you already have in the assembly. Your result will be as follows:
An exact duplicate of the assembly BOM. In our case, making a change to either BOM updates the other, as well as updates the individual parts because we use custom properties to populate our BOM's.
As a side note, there is ongoing discussions about how this function should exactly work, and Solidworks is driving that discussion, so don't be surprised if this function changes before service pack 0.0 is released.