In Microsoft.VisualBasic.FileIO.FileSystem, the methods to delete a file throw a NotImplementedException if the app tries to send a file to the Recycle Bin. This doesn't match the .NET Framework behaviour even when the Recycle Bin doesn't exist; and the Recycle Bin or Trash isn't hard to find on Windows, Mac or if the user has a freedesktop.org-compliant GUI.
The only situation where throwing an exception may be the Right Thing is in a non-desktop environment; but even then, it'd be nice to give the user other options (such as ignoring the RecycleOption, prompting for confirmation if on a terminal, or using ~/.wine/drive_c/RECYCLER).
There's a BSD-licenced cross-platform Python trash API here: http://hg.hardcoded.net/send2trash/src
Note, however, that it will try to create a freedesktop.org-compliant trash folder if one doesn't already exist and the immediate platform isn't Windows or Mac. This may cause problems on Cygwin.
This may be a newer version, and is still BSD-licenced: https://pypi.python.org/pypi/Send2Trash