I beg to differ with you on the "only BMW" part, sunny. *IF* you have a programmer such as the AK90, you can program the key yourself. This is exactly what I did and, yes, it works. The AK90 effectively is an In-Circuit_Emulator. It reads the EWS directly. You can even use it to reprogram an EWS to a new VIN, if you so desired. And that 10 key limit thing? Not really an issue. Sure, you may re-enable a key that is "lost" but you definitely can replicate the "old" key again, including putting the mileage into the transponder. I *absolutely, positively* know that this is possible and that it works. The only caveat is that you *must* have a new transponder chip. You cannot re-use old chips.
Programming the remote is another matter. Oddly, that is where I'm having a problem now. My 2002 Mini Cooper doesn't seem to want to accept the new remote. :-(
As for copying... You need a side milling key cutter. They are not that common but they are hardly rare. I found a guy in Redwood City (Crane Locksmith), California that could cut the keys. I actually have a CNC and tried to cut them myself but they were not reliable so I grudgingly spent an afternoon to drive up to CRane. That said, the keys work perfectly now so I'm happy. The charge was $35 when you supply your own blank. The guys there are super nice and very helpful.