If you use GiveItemFromFile, beware that you won't be able to use that bucket for anything. GiveItemFromFile creates the actual item, but destroys it after, so it won't work if you use it in a AddUseItemCallback. It's mainly used for debugging.
You'll want to use GiveItem. Try this:
GiveItem("wooden_bucket_filled_1", "wooden_bucket_filled.ent", "filled_bucket", "wooden_bucket_filled.tga", 1)
wooden_bucket_filled_1 - internal name (use this name in the AddUseItemCallback function)
wooden_bucket_filled.ent - item to give
filled_bucket - the name for the .lang file
wooden_bucket_filled.tga - the image that shows up in the inventory
1 - amount to give